You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows容器中含中文参数的EXE程序编码异常问题排查

Windows容器中EXE程序处理中文参数的编码问题
  • 我有一个用于文件格式转换的EXE程序,输入文件名包含中文时,在语言环境为zh-CN、chcp显示代码页936的Windows 10/11系统上可正常运行。
  • 使用mcr.microsoft.com/windows/servercore:ltsc2022镜像部署Docker,宿主机为Windows 11并添加--isolation=process参数。容器内Get-WinSystemLocale显示为zh-CN(和宿主机一致),但chcp仍显示437,怀疑是代码页导致的问题。
  • 此前在全新安装的英文语言Windows 10上运行该程序失败,将「控制面板→区域→管理→非Unicode程序的语言」设置为简体中文后恢复正常。

更新:测试调整代码页至936后,程序接收中文参数仍无法输出正确内容。为此编写了一个简化的测试程序,功能是接收含中文的参数并打印:

#include <iostream>

int main(int argc, char* argv[]) {
    std::cout << argv[1] << std::endl;
    return 0;
}

宿主机运行结果(chcp:936,Get-WinSystemLocale:zh-CN)

.\helloworld.exe hello // 输出 hello
.\helloworld.exe 你好  // 输出 你好

Docker容器内运行结果(chcp:936,Get-WinSystemLocale:zh-CN)

.\helloworld.exe hello // 输出 hello
.\helloworld.exe 你好  // 输出 ??

内容的提问来源于stack exchange,提问作者wqlu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 22:07:04