VisualStudio调试中命令参数含有%时的乱码问题(转)

解决命令行参数传递%06d乱码问题,
文章讲述了在调试程序时遇到的问题,即通过命令行传递含有%06d的参数导致乱码。解决方案包括对参数进行urlEncode编码或者将%用双引号包围,以避免其被解析为特殊控制符,从而能正确传递给程序。这两种方法都成功解决了问题。

问题描述:
调试的程序需要通过命令行传递一个含有"%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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值