1. 为什么 Claude Code 在 VS Code 里总是回英文
你打开 VS Code,装好 Claude Code 扩展,在侧边栏输入「帮我看看这个项目结构」,结果它噼里啪啦回了一堆英文:I'll inspect the project structure first...。你明明用中文提问,它却用英文回答,读起来费劲,还得自己在脑子里翻译一遍。
这个问题的本质是:Claude Code 的默认沟通语言跟随模型训练时的偏好,而模型在没有明确指令时,倾向于用英文输出。它并不是「不支持中文」,而是「没人告诉它要用中文」。目前 Claude Code for VS Code 扩展里,确实没有一个叫「输出语言 = 中文」的图形开关,所以你得从三个层面去配置:项目级的 CLAUDE.md 指令、VS Code 终端编码、以及环境变量与 settings 配置。
我试过只改一个地方,结果发现中文还是时有时无。后来把三层都配齐,输出才稳定下来。这篇文章就按「先讲清楚问题出在哪,再给可复制的配置,最后教你怎么验证和排错」的顺序来写,你跟着做就行。
适合谁看:刚在 VS Code 里用上 Claude Code、希望它默认用简体中文回复的开发者;以及已经配了 CLAUDE.md 但发现终端里中文还是乱码的人。核心检索词就是 Claude Code、VS Code、CLAUDE.md、中文输出这几个,下面会反复落到具体文件和参数上。
先说清楚一个前提:Claude Code 的输出分两种场景。一种是在 VS Code 的 Claude Code 面板/侧边栏里对话,这种走的是扩展的聊天界面;另一种是在 VS Code 集成终端里跑claude命令行,这种走的是终端编码。两种场景的中文显示问题,原因和修法不完全一样,但 CLAUDE.md 对两者都生效。所以最稳的做法是:CLAUDE.md 管「说什么语言」,终端编码管「中文能不能正常显示」,环境变量管「命令行会话的默认行为」。
很多人只改了 CLAUDE.md,发现面板里中文正常了,但终端里跑命令还是乱码,就是因为终端编码没配。反过来,只配终端编码,面板里照样回英文,因为模型没收到中文指令。这两件事得分开处理,别混在一起。
还有一个容易忽略的点:CLAUDE.md 是项目级的,放在项目根目录。如果你在多个项目里切换,每个项目都得有自己的 CLAUDE.md,或者你在用户级配置里也放一份。Claude Code 会读取项目根目录的 CLAUDE.md,也会读取用户主目录下的全局配置。所以如果你希望「所有项目都默认中文」,光在单个项目里加是不够的。
下面进入具体配置。我会先讲 TaoToken 的接入准备(因为你要先能正常调用模型),再给 CLAUDE.md、settings.json、终端编码三件套的可复制片段,然后教你怎么验证,最后把常见报错列出来对照排查。
2. 接入前的准备:TaoToken 的 Base URL 与 Key 怎么配
在折腾中文显示之前,你得先确保 Claude Code 能正常连上模型。如果你用的是 TaoToken 的接入方式,需要准备好三样东西:Base URL、API Key、Model ID。这三件套缺一不可,后面所有配置都围绕它们展开。
TaoToken 的 API 地址是https://taotoken.net/api,注意这个地址不带任何查询参数,直接作为 Base URL 用。API Key 你在控制台里生成,生成后复制保存,因为它只显示一次。Model ID 则根据你要用的模型来填,比如 Claude 系列的模型 ID。
具体操作路径是这样:先打开 TaoToken 官网https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=注册登录,然后进控制台https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=创建 API Key。创建的时候给它起个名字,比如vscode-claude,方便以后管理。生成后立刻复制,页面刷新就看不到了。
拿到 Key 之后,你可以在 API Keys 页面https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=随时查看和管理已有的 Key。如果你要长期在 VS Code 里做编码和 Agent 任务,可以考虑 Coding Planhttps://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,它更适合高频调用场景。
配置的时候,Claude Code 需要知道往哪个地址发请求。默认它连的是 Anthropic 官方地址,你要改成 TaoToken 的地址。这个改动通过环境变量或者 settings 文件来完成。环境变量通常是ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY这两个。Base URL 填https://taotoken.net/api,API Key 填你刚生成的那串。
如果你用的是 Claude Code 的配置文件方式,可以在~/.claude/settings.json或者项目级的.claude/settings.json里写。注意路径要和实际一致,别写错目录。下面第三节会给完整的 JSON 片段。
这里有个坑要提前说:Base URL 结尾不要多加斜杠。https://taotoken.net/api是对的,https://taotoken.net/api/有时候会导致请求路径拼接出问题,报 404。另外 API Key 不要带空格,复制的时候容易多复制一个换行符,导致 401。
配好这三件套之后,你可以先用一个最简单的请求验证连通性。在终端里跑一条 curl 命令,看能不能拿到模型回复。如果能拿到,说明接入没问题,接下来才是中文显示的事。如果拿不到,先解决连通性,别急着改 CLAUDE.md。
验证连通性的命令大概是这样:把 Base URL、Key、Model ID 替换成你自己的,发一个 chat completions 请求。返回 200 并且有内容,就说明通了。返回 401 就是 Key 不对,返回 404 就是 Base URL 或路径不对。这些报错在第五节会详细对照。
接入文档在https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,里面有更详细的参数说明和示例。如果你用的是 Claude Code 的 Anthropic 兼容模式,文档里也有对应的配置说明。ClaudeCodeAnthropic 的接入方式在https://taotoken.net/ClaudeCodeAnthropic?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=这个页面有专门讲。
3. 三件套可复制配置:CLAUDE.md、settings.json、终端编码
这一节是核心,给你可以直接复制的配置片段。三件套分别是:CLAUDE.md(管语言指令)、settings.json(管 Claude Code 行为)、VS Code 终端编码(管中文显示)。每一件都给出路径和原文,你照着填就行。
3.1 CLAUDE.md 片段
在项目根目录创建CLAUDE.md,如果已经有就追加。内容如下:
# Claude Code 回复语言 请始终使用简体中文回复我。 要求: - 所有解释、分析、操作说明默认使用简体中文。 - 代码、命令、文件名、API 名称、变量名保持原样,不要翻译。 - Git commit、代码注释是否使用中文,根据我的具体要求决定。 - 如果必须引用英文报错信息,可以保留原文,并在后面用中文解释。这段的作用是给模型一个明确的系统级指令。Claude Code 在每次会话开始时会读取 CLAUDE.md,把它作为上下文的一部分。所以模型知道「这个用户要求中文回复」。注意「代码、命令、文件名保持原样」这一条很重要,否则模型可能把变量名也翻译了,那就麻烦了。
如果你希望所有项目都生效,可以在用户主目录下也放一份,路径通常是~/.claude/CLAUDE.md。这样即使某个项目没有自己的 CLAUDE.md,也会走全局的中文指令。
3.2 settings.json 片段
Claude Code 的 settings 文件可以放在项目级.claude/settings.json,也可以放在用户级~/.claude/settings.json。内容如下:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "你的APIKey", "LANG": "zh_CN.UTF-8", "LC_ALL": "zh_CN.UTF-8" }, "model": "你的ModelID" }这里env里的ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY是接入 TaoToken 用的。LANG和LC_ALL是给终端会话设置中文环境,影响命令行输出的编码。model填你要用的模型 ID。
注意 JSON 里不能有注释,也不能有多余的逗号。你的APIKey和你的ModelID要替换成真实值。如果你不确定 Model ID 填什么,可以在 TaoToken 的模型对话页面https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=里看看有哪些可用模型。
如果你用的是 Claude Code 的 Anthropic 兼容配置,可能还需要一个ANTHROPIC_MODEL变量。具体看接入文档里的说明。settings.json 的路径一定要对,项目级是.claude/settings.json,用户级是~/.claude/settings.json,别放错地方。
3.3 VS Code 终端编码设置
VS Code 的集成终端默认编码在 Windows 上可能是 GBK,在 macOS/Linux 上通常是 UTF-8。如果终端编码不是 UTF-8,中文就会乱码。你可以在 VS Code 的settings.json(注意这是 VS Code 自己的设置,不是 Claude Code 的)里加:
{ "terminal.integrated.defaultProfile.windows": "PowerShell", "terminal.integrated.env.windows": { "LANG": "zh_CN.UTF-8", "LC_ALL": "zh_CN.UTF-8" }, "terminal.integrated.env.linux": { "LANG": "zh_CN.UTF-8", "LC_ALL": "zh_CN.UTF-8" }, "terminal.integrated.env.osx": { "LANG": "zh_CN.UTF-8", "LC_ALL": "zh_CN.UTF-8" } }Windows 上如果用的是 PowerShell,还可以在 PowerShell 的 profile 里加[Console]::OutputEncoding = [System.Text.Encoding]::UTF8。这样终端输出的中文就不会变成问号或方块。
VS Code 自己的 settings.json 路径:Windows 是%APPDATA%\Code\User\settings.json,macOS 是~/Library/Application Support/Code/User/settings.json,Linux 是~/.config/Code/User/settings.json。你可以通过命令面板(Ctrl+Shift+P)输入「Open User Settings (JSON)」直接打开。
三件套配齐之后,重启 VS Code,让所有配置生效。然后新建一个 Claude Code 会话,测试中文输出。
4. 验证请求:怎么确认输出真的是中文
配完之后不能光看「感觉」,得有具体的验证步骤。这一节教你从三个层面确认:CLAUDE.md 是否被读取、终端编码是否生效、模型回复是否中文。
第一步,验证 CLAUDE.md 被读取。在 Claude Code 面板里输入「请告诉我你当前读取到的项目指令是什么」。如果配置正确,它应该用中文回复,并且提到「始终使用简体中文」这条指令。如果它回英文,说明 CLAUDE.md 没被读到,检查路径和文件名是否正确。文件名必须是CLAUDE.md,大小写敏感。
第二步,验证终端编码。在 VS Code 集成终端里跑:
echo "中文测试"如果输出是「中文测试」而不是乱码,说明终端编码没问题。如果输出是问号或方块,回到 3.3 检查终端编码设置。Windows 上还可以跑chcp看当前代码页,65001 是 UTF-8。
第三步,验证模型回复。在 Claude Code 面板里输入一个需要分析的问题,比如「帮我分析一下这个项目的目录结构」。观察回复语言。如果回复是中文,并且代码、文件名保持英文原样,说明配置成功。如果回复还是英文,检查 CLAUDE.md 内容是否被正确加载,或者试试在对话开头加一句「请用中文回复」。
第四步,验证命令行会话。在终端里跑claude进入命令行模式,输入同样的问题。看输出是否中文。命令行模式受环境变量影响更大,如果这里乱码,重点查LANG和LC_ALL。
我实测下来,最容易出问题的是 Windows 上的终端编码。PowerShell 默认代码页有时候不是 UTF-8,导致中文显示异常。解决办法是在 PowerShell profile 里加编码设置,或者改用 Windows Terminal 并设置默认编码为 UTF-8。
验证通过的标准是:面板和终端两个场景下,模型都用简体中文回复,代码和命令保持英文原样,中文没有乱码。三个条件都满足,才算真正配好。
如果你在验证过程中发现模型偶尔回英文,可能是会话上下文太长,CLAUDE.md 的指令被稀释了。这时候可以在对话里再强调一次「请用中文回复」,或者把 CLAUDE.md 的指令写得更靠前、更醒目。
5. 常见报错对照排查:401、local proxy failed、reading choices、OAuth
配置过程中会遇到各种报错,这一节把常见的列出来,对照排查。每个报错都给出可能原因和解决办法。
401 Unauthorized:API Key 不对。检查 settings.json 里的ANTHROPIC_API_KEY是否填对,有没有多余空格或换行。去 TaoToken 的 API Keys 页面https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=重新生成一个 Key 试试。如果 Key 是对的,检查 Base URL 是否写成了https://taotoken.net/api,不要多加斜杠。
local proxy failed:本地代理连接失败。这个通常和网络环境有关,检查你的网络是否能正常访问 TaoToken 的 API 地址。如果你在公司网络里,可能有防火墙限制。另外检查环境变量里有没有残留的代理设置,比如HTTP_PROXY或HTTPS_PROXY,这些可能干扰请求。
reading choices 报错:这个通常是响应格式解析问题。检查 Model ID 是否填对,有些模型 ID 不兼容 chat completions 格式。去模型对话页面https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=确认可用模型列表。另外检查请求的 API 路径是否正确,Base URL 后面拼接的路径要和文档一致。
OAuth 相关报错:如果你用的是 Claude Code 的 OAuth 登录方式,而不是 API Key,可能会遇到 token 过期或刷新失败。解决办法是重新登录,或者改用 API Key 方式。在 settings.json 里明确配置ANTHROPIC_API_KEY,避免走 OAuth 流程。
中文乱码但模型回复是中文:这是终端编码问题,不是模型问题。回到 3.3 检查终端编码设置。Windows 上重点查 PowerShell 的代码页,macOS/Linux 上查LANG和LC_ALL环境变量。
CLAUDE.md 不生效:检查文件路径和文件名。必须是项目根目录下的CLAUDE.md,大小写敏感。如果项目有多个子目录,CLAUDE.md 要放在你启动 Claude Code 的那个目录。另外检查文件内容格式,Markdown 标题和列表要正确。
模型回复中英文混杂:这是 CLAUDE.md 指令不够强。在指令里加一句「所有解释、分析、操作说明默认使用简体中文」,并且把「代码、命令、文件名保持原样」写清楚。如果还是混杂,在对话开头再强调一次。
settings.json 不生效:检查 JSON 格式是否正确,有没有多余的逗号或注释。用 JSON 校验工具检查一下。另外确认文件路径是否正确,项目级是.claude/settings.json,用户级是~/.claude/settings.json。
排查的时候,建议一次只改一个地方,改完就验证。不要同时改多个配置,否则出了问题不知道是哪个引起的。先确保接入连通(401 解决),再确保 CLAUDE.md 生效(语言指令),最后确保终端编码正确(显示正常)。
如果你在排错过程中需要更详细的接入说明,可以看接入文档https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=。Claude Code 的 Anthropic 兼容配置在https://taotoken.net/ClaudeCodeAnthropic?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=有专门说明。
6. 长期使用建议:把中文配置固化下来
配好之后,怎么让它长期稳定生效,而不是每次新建项目都要重配一遍。这一节给几个实用建议。
第一,把 CLAUDE.md 模板化。你可以建一个自己的模板文件,新建项目时直接复制过去。模板里除了中文指令,还可以加上你常用的编码规范、提交信息格式等。这样每个项目一开始就有统一的中文回复行为。
第二,用户级配置兜底。在~/.claude/CLAUDE.md和~/.claude/settings.json里放一份全局配置。这样即使某个项目忘了加 CLAUDE.md,也会走全局的中文指令。项目级的配置会覆盖用户级,所以你可以针对特定项目做微调。
第三,终端编码一次性配好。VS Code 的终端编码设置是用户级的,配一次就对所有项目生效。Windows 用户重点配 PowerShell 的 UTF-8 编码,macOS/Linux 用户确认LANG和LC_ALL是zh_CN.UTF-8。
第四,定期检查 API Key 和额度。如果你长期用 Claude Code 做编码任务,建议用 Coding Planhttps://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=,它更适合高频场景。在控制台https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=可以查看用量和额度。
第五,遇到模型偶尔回英文,别慌。在对话里补一句「请用中文回复」就行。CLAUDE.md 是概率性生效的,不是硬性开关。上下文越长,指令被稀释的可能性越大。所以关键对话开头强调一次,效果更稳。
第六,如果你在团队里推广这套配置,可以把 CLAUDE.md 和 settings.json 模板放进项目的.claude/目录,提交到版本控制。这样团队成员拉下代码就自动有中文配置。注意 settings.json 里的 API Key 不要提交,用环境变量或者本地覆盖的方式处理。
最后说一个我踩过的坑:VS Code 的 Claude Code 扩展更新后,有时候会重置部分配置。所以升级扩展之后,建议重新验证一下中文输出是否正常。如果发现回英文了,检查 CLAUDE.md 是否还在,settings.json 是否被覆盖。
整套配置的核心逻辑就是:CLAUDE.md 管语言指令,settings.json 管接入和行为,终端编码管显示。三层各司其职,配齐了就稳定。你按第三节的片段复制,第四节验证,第五节排错,基本能覆盖大部分场景。