Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Smart Encoding: UTF-8 / GB2312 + ManualNew to Visual Studio Code? Get it now.
Smart Encoding: UTF-8 / GB2312 + Manual

Smart Encoding: UTF-8 / GB2312 + Manual

Cannon

|
47 installs
| (0) | Free
Automatically detects UTF-8 or GB2312. Unknown encodings can be selected from all VS Code-supported encodings and remembered per file.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Smart Encoding: UTF-8 / GB2312 + Manual

一个面向旧工程、HMI 工程和混合编码源码的 VS Code 扩展。

核心策略保持简单:只自动识别 UTF-8 和 GB2312;如果无法确定属于这两种编码,就让用户手动选择 VS Code 支持的其他编码,并按文件记住。

功能

  • 严格检测 UTF-8。
  • 对非 UTF-8 文件继续检查是否符合 GB2312 字节结构。
  • 无法判定为 UTF-8 / GB2312 时,自动弹出编码选择列表。
  • 可手动选择 GBK、GB18030、Big5、Shift JIS、EUC-JP、Windows-1252、UTF-16 LE/BE 等 VS Code 支持的编码。
  • 手动选择后,记录到当前工程的 <workspace>/.vscode/smart-encoding.json。
  • 再次打开同一个文件时,直接按照记录的编码重新打开,不再询问。
  • 记录使用相对路径,工程移动、复制到其他盘或其他电脑后仍然有效。
  • 不主动把源文件转换为 UTF-8,也不会为了识别而修改磁盘中的原文件。
  • 文件存在未保存修改时,拒绝自动关闭并重新打开,避免错误编码写回磁盘。

工作流程

打开文件
   │
   ├─ 已有编码记录 ─────────────→ 按记录编码打开
   │
   └─ 没有记录
         │
         ├─ 严格 UTF-8 合法 ───→ UTF-8 → 记录
         │
         ├─ 符合 GB2312 结构 ──→ GB2312 → 记录
         │
         └─ 两者都不是/无法确定
                   │
                   ↓
             手动选择编码
                   │
                   ↓
       .vscode/smart-encoding.json
                   │
                   ↓
          下次自动按记录打开

编码记录文件

第一次需要记忆编码时会创建:

<your-project>/.vscode/smart-encoding.json

例如:

{
  "version": 2,
  "files": {
    "HMI/main.c": "gb2312",
    "src/app.c": "utf8",
    "legacy/old_cn.txt": "gbk",
    "legacy/japanese.txt": "shiftjis",
    "legacy/western.txt": "windows1252",
    "legacy/unicode.txt": "utf16le"
  }
}

文件中只保存相对路径 + 编码 ID,不会保存源文件内容。

如果希望团队共享编码规则,可以把这个 JSON 提交到 Git;如果只想自己使用,可以把它加入 .gitignore。

手动选择编码

当插件无法判断文件是 UTF-8 还是 GB2312 时,会弹出选择框。

UTF-8 和 GB2312 会放在最前面,其余编码列在“其他 VS Code 支持的编码”下面。选择后立即记忆并按该编码重新打开文件。

也可以随时点击状态栏的:

ENC: <encoding>

重新选择并记录当前文件编码。

纯 ASCII 文件

纯 ASCII 字节在 UTF-8 和 GB2312 中完全相同,因此无法自动区分。

默认按 UTF-8 处理:

{
  "smartEncoding.asciiDefault": "utf8"
}

对于以老式 HMI/GB2312 为主的项目,可以设置:

{
  "smartEncoding.asciiDefault": "gb2312"
}

安全行为

如果当前文件已经被修改但尚未保存,插件不会自动关闭/重新打开它。这样可以避免在编码尚未确认时把内容用错误编码保存到磁盘。

命令

  • Smart Encoding: Choose and Remember Encoding
  • Smart Encoding: Forget and Detect Again

第二个命令会删除当前文件的记忆,然后重新执行 UTF-8 / GB2312 检测;如果仍无法确定,则再次让用户选择。

开发运行

  1. 安装 Node.js。
  2. 使用 VS Code 1.136+ 打开此工程。
  3. 执行 npm install。
  4. 执行 npm run compile,或直接按 F5 启动 Extension Development Host。
  5. 打开包含不同编码文件的测试工程。

v0.0.3

  • 保留 UTF-8 / GB2312 自动识别。
  • 不再把所有非 UTF-8 文件直接视为 GB2312,而是增加 GB2312 字节结构检查。
  • 对无法确认的文件提供完整的手动编码选择。
  • 手动选择结果继续存放在 .vscode/smart-encoding.json 中,并在以后自动恢复。
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft