V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
admirez
V2EX  ›  Codex

codex 如何避免中文乱码

  •  
  •   admirez · 2 月 27 日 via iPhone · 1721 次点击

    让他改一下 claude code 写的 py 程序,改的很好 就是中文全乱码了

    23 条回复    2026-02-27 23:26:27 +08:00
    Vaspike
        1
    Vaspike  
       2 月 27 日
    指定编码组?
    280303
        2
    280303  
       2 月 27 日
    [img][/img]
    nethcx
        3
    nethcx  
       2 月 27 日   ❤️ 2
    项目里写个 agents.md
    强约束:所有文件读写一律使用 UTF‑8 (无 BOM )。禁止使用默认编码、GBK 、ANSI 。
    执行任何写文件命令前,必须检查并确认控制台编码为 UTF‑8 ( chcp 65001 ),并在读写时显式指定 UTF‑8 。
    如发现中文乱码(例如“绔炶禌 Service 涓氬姟灞傚鐞?”),不得直接修乱码文本,必须先确定原文(从正确源文件/历史版本/上下文)再替换。
    若无法确认原文,必须先询问再修改。
    违反以上规则将导致编码再次损坏,务必严格遵守。
    win8en
        4
    win8en  
       2 月 27 日 via Android
    @nethcx 难受,几乎天天会遇到,不过项目被 codex 读的多了,他都给自动改过来了。新项目还是会遇到,谢谢您,哥哥
    zgx030030
        5
    zgx030030  
       2 月 27 日
    @nethcx 学习了。 我之前也遇到过,好好的项目改完全是乱码。后来听说 linux/macos 里是正常的,我就直接在 wsl 里跑 codex 开发了...
    admirez
        6
    admirez  
    OP
       2 月 27 日 via iPhone
    @280303 我是 windows11 用微软 terminal ,ps 是 5.1 ,但是 claude code 也是这样用 cli 啊 从来没乱码过
    Anonono
        7
    Anonono  
       2 月 27 日
    @admirez 不要纠结,就是 codex 的问题,我也踩过这坑,换 pwsh7 吧。然后推荐一下这个配置 https://linux.do/t/topic/1504310 可以参考使用下
    jixule
        8
    jixule  
       2 月 27 日
    wsl ,之前用 win 总是出现中文乱码,装在 wsl 里面再也没出现过
    280303
        9
    280303  
       2 月 27 日
    @admirez 你问的不是 codex 么,claude code 没问题 不代表 codex 也没问题啊。 不用纠结 解决就行
    cairnechen
        10
    cairnechen  
       2 月 27 日
    @nethcx 问个小白问题,这个 agents.md 是 codex 默认会加载,还是必须主动告诉它去加载?
    Censhuang
        11
    Censhuang  
       2 月 27 日
    macos 的 codex 原生开始写,没有中文乱码。Claude code 倒是乱码一堆
    EeveeRibbon
        12
    EeveeRibbon  
       2 月 27 日
    macOS 高强度使用没遇见过,应该是 Windows 版本的专属问题
    JYii
        13
    JYii  
       2 月 27 日
    @280303 #9 微软商店下载 powershell 一直转圈,不能停止,杀掉再打开还是在下载中...代理开关都一个样。真愁人啊
    nethcx
        14
    nethcx  
       2 月 27 日
    ninjaJ
        15
    ninjaJ  
       2 月 27 日
    @admirez Windows 最好在 WSL 中用
    win8en
        16
    win8en  
       2 月 27 日
    @EeveeRibbon 这个问题是 Windows 专属!你们 macOS 没有机会“享受”的!该死的阿三,烦死了。
    4seasons
        17
    4seasons  
       2 月 27 日
    直接在 git bash 中用 codex ,就会少很多问题...
    bbbblue
        18
    bbbblue  
       2 月 27 日   ❤️ 1
    # Force UTF-8 (no BOM) for console + pipeline
    $Utf8NoBom = [System.Text.UTF8Encoding]::new($false)
    [Console]::InputEncoding = $Utf8NoBom
    [Console]::OutputEncoding = $Utf8NoBom
    $OutputEncoding = $Utf8NoBom

    # Ensure code page is UTF-8
    chcp 65001 > $null

    把这个用在 PS5/PS7 的 profile 里

    如果 codex 调了 wsl 的 bash config.toml 加参数
    [shell_environment_policy.set]
    WSL_UTF8 = "1"
    ztm0929
        19
    ztm0929  
       2 月 27 日
    @JYii 在微软商店下载其他应用也是如此吗?如果同样有类似的问题,说明此时代理没有正确应用到这类 UWP 应用。

    不确定你在使用哪款客户端,不过可以参考这个说明操作去解决。

    https://www.clashverge.dev/faq/windows.html#windows-uwp
    admirez
        20
    admirez  
    OP
       2 月 27 日 via iPhone
    @Anonono 只用 powershell7 就可以了吗?我还有不少文件是 gbk 编码的
    Anonono
        21
    Anonono  
       2 月 27 日
    @admirez 不好确定,windows 下最优解还是 wsl ,如果不用 wsl 一定要装 pwsh
    admirez
        22
    admirez  
    OP
       2 月 27 日 via iPhone
    @Anonono 用 pwsh 会导致 claude codex 处理我的 gbk 编码的中文文件乱码吗
    admirez
        23
    admirez  
    OP
       2 月 27 日 via iPhone
    试了下 codex 在 powershell7 下面 编辑我的 gbk 编码的 bat 文件 还是中文乱码,utf8 编码的没问题。claudecode 在 powershell5.1 都是正常
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1174 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:05 · PVG 02:05 · LAX 10:05 · JFK 13:05
    ♥ Do have faith in what you're doing.