惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
量子位
D
DataBreaches.Net
博客园 - 司徒正美
J
Java Code Geeks
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
B
Blog
The Cloudflare Blog
D
Docker
I
InfoQ
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
腾讯CDC
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
S
SegmentFault 最新的问题
GbyAI
GbyAI
有赞技术团队
有赞技术团队

博客园 - 立体风

autohotkey2.0 Send keys参数分析 autohotkey2.0 盲从模式 windows 10 下 vscode 编写编译一个 nana c++ 库的示例程序 vscode 插件 cmake-tools 输出内容解读 python 启动器命令 py 答惑 windows 下 python 3.11 的版本问题 pip 安装 老版本 pytorch 的一个容易迷惑的错误 sentence transformer 例子及说明 Sentence Transformers 介绍 Jina Reranker 替代方案:改用 ModelScope 模型 Webnovel Writer 6.2.1 项目分析 windows 10 LTSC 版 安装 Terminal autohotkey2.0 脚本运行机制 windows wsl2 安装 gentoo 的步骤 windows 10 LTSC版 打开 wsl2 autohotkey 提示词 编译安装最新版 perl rust 做到“快并且安全” 的逻辑思路 rust 和 go 语言的核心目的 用 vim 查看文件的格式和编码 throughput 和 efficient 词义 python 以字符数量分割文档 (三) python 以字符数量分割文档 (二) python 以字符数量分割文档 (一) GNU Bash 参考手册(中文版)(六) GNU Bash 参考手册(中文版)(五) GNU Bash 参考手册(中文版)(四) GNU Bash 参考手册(中文版)(三) GNU Bash 参考手册(中文版)(二) GNU Bash 参考手册(中文版)(一)
Claude Code 处理中文乱码问题
立体风 · 2026-08-24 · via 博客园 - 立体风

为了彻底解决 Claude Code 在处理中文相关工作时出现的乱码、刷屏或文件编码双重损坏(Double-encoding)问题,必须从操作系统环境终端配置项目自身规范三个维度强制统一为 UTF-8 格式。

以下是确保 Claude Code 始终以 UTF-8 格式读写的最有效设置方法:


第一道防线:强制终端环境为 UTF-8

Claude Code 是命令行工具,其输出和对系统环境的感知极大程度上依赖于宿主终端的编码。

1. Windows 系统(最容易出现中文乱码)

Windows 默认使用本地代码页(如 GBK / CP936),这经常导致 Node.js 应用(如 Claude Code)在处理 I/O 时发生混淆。

  • 永久开启系统级 UTF-8 (推荐)
  1. Win + R 输入 intl.cpl 打开“区域”设置。
  2. 点击“管理”选项卡,再点击“更改系统区域设置”。
  3. 勾选:“Beta 版:使用 Unicode UTF-8 提供全球语言支持”。
  4. 重启电脑。(注意:这可能会让某些极老的国内软件显示乱码,但对现代开发环境极其友好)。
  • 或者,在终端中强制使用 UTF-8
    如果你使用 PowerShell,可以在你的 PowerShell Profile ($PROFILE) 中加入以下代码,强制控制台使用 UTF-8 编码读写:
[console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
$OutputEncoding = [console]::OutputEncoding

如果使用 CMD,确保在运行 Claude Code 前执行 chcp 65001

2. macOS / Linux 系统

Unix 系统的终端默认较好,但必须确保 LANGLC_ALL 环境变量没有被错误配置。
在你的 ~/.zshrc~/.bashrc 文件末尾添加:

export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

保存后执行 source ~/.zshrc 即可生效。


第二道防线:配置 Node.js 强制以 UTF-8 运行

Claude Code 底层是基于 Node.js 运行的(通常通过 npx 或全局安装调用)。你可以通过设置环境变量,强制 Node.js 在读写文件和输出控制台时使用 UTF-8,彻底禁用本地编码回退。

在操作系统的环境变量中,新增一个系统级变量:

  • 变量名NODE_OPTIONS
  • 变量值--use-openssl-ca --icu-data-dir=node_modules/full-icu(其实最直接的是依赖系统环境,但如果你想强迫 Node 不猜编码,可以尝试注入类似选项,不过对于现代 Node 来说,最核心的是设置好环境变量)。

更直接有效的做法是设置系统环境变量强制 C 运行库的编码处理:

  • 变量名PYTHONIOENCODING (虽然 Claude Code 是 Node,但如果它底层调用了 Python 脚本解析某些文件,加上这个会安全很多)
  • 变量值utf-8

第三道防线:在项目中引入 .editorconfig 规范

Claude Code 会读取和修改你的项目文件。如果你的代码文件本身是 GBK 编码,Claude Code 写入时可能会用 UTF-8 覆盖,直接导致文件永久损坏。

在你的项目根目录下创建一个名为 .editorconfig 的文件,填入以下内容。绝大多数现代编辑器和部分 AI 工具都会识别该文件:

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

排查警告:运行 Claude Code 之前,请务必确保项目中现有的中文文件已经是 UTF-8 (无 BOM) 格式。如果原来是 GBK,请先用 VS Code 右下角的编码选项,将其重新保存为 UTF-8。


总结检查清单:

  1. 查系统:是否开启了 UTF-8 (Windows) 或设置了 LC_ALL=zh_CN.UTF-8 (Mac/Linux)?
  2. 查终端字体:是否使用了支持中文和编程连字的等宽字体(如 Fira Code, JetBrains Mono)?缺失字体会导致部分字符显示为空白方块。
  3. 查项目文件:项目内所有的源码、Markdown、JSON 文件是否全部已转换为 UTF-8?