isPlainTextFile
判断文件是否应按 UTF-8 纯文本读取(源码、配置、标记语言等)。不含 PDF / Word / 光栅图。
导出
typescript
const PLAIN_TEXT_FILE_EXTENSIONS: Set<string>
const PLAIN_TEXT_FILE_ACCEPT: string
function isPlainTextFileName(filename: string | null | undefined): boolean
function isPlainTextMimeType(mimeType?: string | null): boolean
function isPlainTextFile(file: { name?: string; type?: string }): boolean
function bytesLookLikeUtf8Text(input: ArrayBuffer | ArrayBufferView | null | undefined): boolean判定顺序
- MIME 为
text/*,或application/json/application/javascript等白名单 - 否则看文件名后缀(
.java、.ts、.json等) - 后缀与 MIME 都未知时,可用
bytesLookLikeUtf8Text抽样字节
Windows 上 .java 的 MIME 经常为空或 application/octet-stream,必须靠后缀。
使用场景
- 知识库上传:源码/纯文本走 UTF-8,PDF/Word/图片另判
<input type="file" :accept="PLAIN_TEXT_FILE_ACCEPT">