字符
字符 是一个用纯 JavaScript (TypeScript) 写的字符检测模块. 模块使用发生分析来确定最可能的编码.
- 包装大小 22个KB
- 所有环境中的工作:节点/浏览器/原生
- 所有平台的工作: Linux / Mac / Windows
- 无依赖关系
- 没有本地代码/ 绑定
- 100% 写入类型脚本
- 广泛的代码覆盖
安装
npm i chardet
使用量
以最高的自信返回编码:
import chardet from 'chardet';
const encoding = chardet.detect(Buffer.from('hello there!'));
// or
const encoding = await chardet.detectFile('/path/to/file');
// or
const encoding = chardet.detectFileSync('/path/to/file');
返回可能使用的编码的完整列表 analyse 方法.
import chardet from 'chardet';
chardet.analyse(Buffer.from('hello there!'));
返回值是一组按下行顺序按信任值排序的对象
[
{ confidence: 90, name: 'UTF-8' },
{ confidence: 20, name: 'windows-1252', lang: 'fr' },
];
在浏览器中,您可以使用 Uint8 阵列 代替 Buffer数字 :
import chardet from 'chardet';
chardet.analyse(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f]));
使用大型数据集
有时,当数据集庞大,而你想要优化性能时(与准确度较低的交易), 您只能对缓冲器的第一个 N 字节进行抽样:
const encoding = await chardet.detectFile('/path/to/file', { sampleSize: 32 });
您也可以在缓冲器中指定从何处开始读取 :
const encoding = await chardet.detectFile('/path/to/file', {
sampleSize: 32,
offset: 128,
});
使用字符串工作
在Node.js和浏览器中,内存中的所有字符串都以UTF-16编码表示. 这是JavaScript语言规格的一个基本方面. 因此,您不能直接使用纯字符串作为输入 chardet.analyse() 或者说 chardet.detect()。相反,您需要以缓冲或Uint8Array形式提供的原始字符串数据.
换句话说,如果通过网络接收到一分数据并想检测其编码,则使用原始数据有效载荷,而不是其字符串表示. 在将数据转换为字符串时,它将会在UTF-16编码中.
说明 文本编码器:默认情况下,它返回一个UTF-8编码缓冲器,这意味着缓冲器不会在字符串的原始编码中.
支持编码 :
- UTF-8 导弹
- UTF-16 类 LE
- UTF-16 BE 战时
- UTF-32 LE 数据
- UTF-32 BE (英语)
- ISO-2022-JP 标准
- ISO-2022-KR 标准
- ISO-2022-CN 标准
- 移动 JIS
- 大块5
- EUC-JP
- 欧盟-韩国
- GB18030 (英语)
- ISO-8859-1 标准
- ISO-8859-2 标准
- ISO-8859-5 国际标准化组织
- ISO-8859-6 (英语)
- ISO-8859-7 国际标准化组织
- ISO-8859-8 标准
- ISO-8859-9 (国际标准化组织)
- 窗口-1250
- 窗口-1251
- 窗口-1252
- 窗口-1253
- 窗口-1254
- 窗口-1255
- 窗口-1256
- 窗口-1257
- 窗口-1258
- 窗口-874(TIS-620 / ISO-8859-11)
- KOI8-R (韩语)
目前只支持这些编码.
类型脚本 ?
对 包括类型定义.
参考资料
- http://site.icu-project.org/ (中文(简体) )
- https://github.com/TypestingTools/uchardet 互联网档案馆的存檔,存档日期2013-12-02
开始
- KOI8-U 乌克兰语
- DOS 西里尔语的 IBM866
- macintosh和x-mac-cyrilic语
- CP949/UHC 韩国识别器内部的支持
- ISO-8859-3, ISO-8859-4
- ISO-8859-10, ISO-8859-13 (英语)
- ISO-8859-14、ISO-8859-15、ISO-8859-16
- DOS CP850,CP852,CP855 (英语)