---
url: /docs/guide/usage/linter/rules/unicorn/text-encoding-identifier-case.md
---

### 作用

此规则强制文本编码标识符的大小写保持一致，具体如下：

* 使用 `'utf8'`，而不是 `'UTF-8'` 或 `'utf-8'`（如果启用了 `withDash`，则允许 `'utf-8'`）
* 使用 `'ascii'`，而不是 `'ASCII'`

### 为什么这不好？

编码标识符大小写不一致会降低代码可读性，并可能在整个代码库中造成细微的混淆。虽然 ECMAScript 或 Node.js 并未严格强制大小写，但使用小写是惯例且被广泛认可的风格。

### 示例

此规则的**错误**代码示例：

```javascript
import fs from "node:fs/promises";
async function bad() {
  await fs.readFile(file, "UTF-8");
  await fs.readFile(file, "ASCII");
  const string = buffer.toString("utf-8");
}
```

此规则的**正确**代码示例：

```javascript
import fs from "node:fs/promises";
async function good() {
  await fs.readFile(file, "utf8");
  await fs.readFile(file, "ascii");
  const string = buffer.toString("utf8");
}
```

当使用 `{ "withDash": true }` 时，此规则的**正确**代码示例：

```javascript
import fs from "node:fs/promises";
async function good() {
  await fs.readFile(file, "utf-8");
  await fs.readFile(file, "ascii");
  const string = buffer.toString("utf-8");
}
```

## 配置

此规则接受一个包含以下属性的配置对象：

### withDash

type: `boolean`

default: `false`

如果为 `true`，优先使用 `utf-8` 而不是 `utf8`。

## 如何使用

## 版本

此规则在 v0.0.15 中添加。

## 参考资料
