问题描述:
调试的程序需要通过命令行传递一个含有"%06d"的参数"longdress_vox10_1300-%06d.ply"进去,但是运行程序以后发现"%06"变为乱码,无法正确给程序传递参数。
解决办法:
1. 对参数urlEncode
查阅资料[1]发现VS调试中的命令参数在部分情况下会进行urlDecode[2],例如
原始字符为: %06d
urlEncode: %2506d
因此可以将乱码的参数先进行urlEncode编码,然后将编码结果作为要传递给程序的参数使用,即
longdress_vox10_1300-%2506d.ply
2. 将%使用""包含起来
尝试发现%可能作为一种特殊控制符使用,所以影响到了后面的参数值,因此使用"%"便可以直接以字符形式将%传递给程序,输入的参数如下:
longdress_vox10_1300-"%"06d.ply
[1] https://blog.youkuaiyun.com/int_tulip/article/details/54949615
[2] UrlEncode编码/UrlDecode解码 - 站长工具
————————————————
版权声明:本文为优快云博主「黑白灰12345」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/a386115360/article/details/119055001
解决命令行参数传递%06d乱码问题,
文章讲述了在调试程序时遇到的问题,即通过命令行传递含有%06d的参数导致乱码。解决方案包括对参数进行urlEncode编码或者将%用双引号包围,以避免其被解析为特殊控制符,从而能正确传递给程序。这两种方法都成功解决了问题。
7112

被折叠的 条评论
为什么被折叠?



