claude-code修改代码文件导致中文乱码求助

海拉鲁的毛虫 2026-06-25 09:15 1

使用vscode+CC修改嵌入式代码遇见了非常头疼的问题。claude问了问题经常不经过确认就直接修改了我代码。


很多老代码都是GBK的,claude会强制以UTF8写入导致中文乱码,改的面目全非。


我也想一劳永逸所有代码转UTF8,但是现实是不可能的,因为屏幕、字库、串口打印等只能显示GBK编码,代码使用UTF8会导致屏幕乱码。


求助有没有朋友遇见同样的问题,怎么才能让claude根据当前文件编码格式判断后再写。

最新回复 (11)
  • 猫南北 06-25 09:23
    1


    claude 写完后 你手操一下不就行了?

  • D 06-25 09:24
    2

    和我们一样哈哈,老项目GBK,不过我们后来是发现idea,自带有个idea-mcp,mcp会完全按照项目代码编码进行修改

  • fish 06-25 09:27
    3

    我是让AI帮忙写了一个hook

    “PreToolUse”: [

    {

    “matcher”: “Read|Edit|MultiEdit”,

    “hooks”: [

    {

    “type”: “command”,

    “command”: “python "$HOME/.claude/hooks/gbk_to_utf8.py"”,

    “timeout”: 10

    }

    ]

    },


    读取/编辑前用gbk_to_utf8脚本转一下,那么ai就是在utf8编码下操作文件。然后最后编译前,自己再手动用脚本转为gbk(这个应该也可以做成自动?但我习惯了自己转一下 也靠谱些)

    本质就是AI会用utf8读取你的gbk代码 因此它读到的就是乱码了 再保存回去还是乱码

  • 海拉鲁的毛虫 楼主 06-25 09:28
    4

    不行的,他写完保存成UTF8了,再手动转还是乱码的,怎么都弄不回来的

  • 海拉鲁的毛虫 楼主 06-25 09:31
    5

    感谢佬友提供方案,我让claude搞一下试试 ^-^,gbk_to_utf8.py这个脚本是网上下载的吗?

  • fish 06-25 09:33
    6

    也是AI写的 你可以让它根据具体需求来。比如我会筛选仅cpp h代码进行转换,之类的。

  • jaskell 06-25 12:33
    7

    我也碰到过类似的事。我的解决方法是先让 AI 帮我写一个编码转换程序保证无误。然后我再告诉他可能的编码不正确的文件的目录位置。最后让他去用这个程序先转换好再说。总之,让这个事情嵌入在 AI 的项目流程中是很烦的,出错了就一团糟。不如单独划出来,先弄好再说。

  • 海拉鲁的毛虫 楼主 06-25 13:05
    8

    我的祖传代码已经经历过很多手了,一个工程里面有GBK文件,有UTF8,还有GBK混合UTF8的乱码的文件。 ^-^

  • 小丸子 06-25 13:10
    9

    我这有一个20多年的SSH老项目,没想到最终因为CC改成了UTF-8

  • 海拉鲁的毛虫 楼主 07-23 16:28
    10

    在github找到一个MCP解决了这个问题GitHub - jidzhang/mcp-fileencoding: 一个MCP服务器,解决AI编码助手在Windows中文环境下读写GBK/GB18030文件时乱码的问题。读取文件时自动检测编码并转为UTF-8返回给AI,写入时自动转回原始编码,文件编码保持不变。支持UTF-8(含BOM)、GBK、GB2312、GB18030等编码。提供read、write、edit、查询编码记录等5个工具,通过PreToolUse Hook或系统提示词引导 AI 按需使用。适用于Claude Code、Cursor等支持MCP的客户端。Python 3.10+,基于mcp和charset-normalizer,pyright strict模式零错误,45个测试全部通过。 · GitHub

  • Autsun 07-31 22:14
    11

    我们这边也有这样的情况,之前我是自己写了个skill每次检查

* 帖子来源Linux.do
返回