# chardet 中文文档

规范地址：https://npmcn.com/package/chardet/

版本：2\.2\.0
npm 元数据更新时间：2026-06-20T02:00:37.413Z
中文译文更新时间：2026-11-05T16:00:52.611Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/chardet
原文对照：https://npmcn.com/package/chardet/?lang=original
项目主页：https://github.com/runk/node-chardet
源码仓库：https://github.com/runk/node-chardet

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：179 kB，39 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2013-04-30T13:49:58.845Z
- 最新版本发布：2026-06-20T02:00:37.138Z
- 近 30 天下载量：259493869（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：30（近 12 个月 1 个）

## 中文简介

字符编码检测器

## 安装

```sh
npm install chardet
```

也可以使用：`pnpm add chardet`、`yarn add chardet`、`bun add chardet`

## README

# 字符

_字符_ 是一个用纯 JavaScript (TypeScript) 写的字符检测模块. 模块使用发生分析来确定最可能的编码.

-   包装大小 **22个KB**
-   所有环境中的工作:节点/浏览器/原生
-   所有平台的工作: Linux / Mac / Windows
-   无依赖关系
-   没有本地代码/ 绑定
-   100% 写入类型脚本
-   广泛的代码覆盖

## 安装

```
npm i chardet
```

## 使用量

以最高的自信返回编码:

```javascript
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` 方法.

```javascript
import chardet from 'chardet';
chardet.analyse(Buffer.from('hello there!'));
```

返回值是一组按下行顺序按信任值排序的对象

```javascript
[
  { confidence: 90, name: 'UTF-8' },
  { confidence: 20, name: 'windows-1252', lang: 'fr' },
];
```

在浏览器中,您可以使用 [Uint8 阵列](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) 代替 `Buffer`数字 :

```javascript
import chardet from 'chardet';
chardet.analyse(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f]));
```

## 使用大型数据集

有时,当数据集庞大,而你想要优化性能时(与准确度较低的交易), 您只能对缓冲器的第一个 N 字节进行抽样:

```javascript
const encoding = await chardet.detectFile('/path/to/file', { sampleSize: 32 });
```

您也可以在缓冲器中指定从何处开始读取 :

```javascript
const encoding = await chardet.detectFile('/path/to/file', {
  sampleSize: 32,
  offset: 128,
});
```

## 使用字符串工作

在Node.js和浏览器中,内存中的所有字符串都以UTF-16编码表示. 这是JavaScript语言规格的一个基本方面. 因此,您不能直接使用纯字符串作为输入 `chardet.analyse()` 或者说 `chardet.detect()`。相反,您需要以缓冲或Uint8Array形式提供的原始字符串数据.

换句话说,如果通过网络接收到一分数据并想检测其编码,则使用原始数据有效载荷,而不是其字符串表示. 在将数据转换为字符串时,它将会在UTF-16编码中.

说明 [文本编码器](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder/TextEncoder):默认情况下,它返回一个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/ (中文(简体) )](http://site.icu-project.org/)
-   [https://github.com/TypestingTools/uchardet 互联网档案馆的存檔,存档日期2013-12-02](https://github.com/TypesettingTools/uchardet)

### 开始

-   [ ] 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 (英语)

## 常见问题

### chardet 是什么？

字符编码检测器

### 如何安装 chardet？

在项目目录运行 npm install chardet，或使用 pnpm add / yarn add / bun add。

### chardet 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### chardet 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### chardet 可以商用吗？

chardet 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### chardet 的下载量有多少？

根据 npm 官方下载统计，chardet 在 2026/10/06 – 2026/11/04 这 30 天内被下载 259,493,869 次，日均约 8,649,796 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### chardet 还在维护吗？

最新版本 2\.2\.0 发布于 2026/06/20（4 个月前）；至今共发布 30 个版本，其中过去 12 个月发布了 1 个；首次发布于 2013/04/30。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

