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

Par::Packer打包脚本无法解析UTF-8命令行参数问题及解决

问题现象
  • 基于处理Win32::API返回宽字符逻辑编写的脚本CmdArgs.pl,直接执行perl CmdArgs.pl äö.txt时,可正常解析UTF-8命令行参数;
  • 通过Par::Packer打包为exe(执行命令pp -o CmdArgs.exe CmdArgs.pl)后,运行CmdArgs.exe äö.txt,参数显示为??.txt。
环境信息
  • 操作系统:Win11 中文系统
  • 注册表编码配置:ACP、OEMCP为936,MACCP为10008
  • 控制台已执行chcp 65001切换至UTF-8编码
问题根因

调试确认:打包后的exe调用GetCommandLineW返回的内存中,参数已被替换为问号。该问题属于Par::Packer 1.061版本的已知bug,Roderich Schupp已提交修复代码,但1.061版本未包含此修复。

解决方案

下载Par::Packer源码包,手动编译安装:

  1. 执行命令 perl Makefile.PL 生成编译配置文件
  2. 执行命令 make 编译源码
  3. 执行命令 make test 运行测试用例验证编译正确性
  4. 执行命令 make install 完成安装

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:51:04