如题,关于qt执行带有中文参数的DOS命令执行不成功
我有一个梦想,我写的代码,可以像诗一样优美。我有一个梦想,我做的设计,能恰到好处,既不过度,也无不足。
项目中第一款软件交付遇到一个小细节,作为开发,我们一般都默认避免中文路径,但是客户不一样,他们的习惯是中文!中文!还TMD是中文!
环境:qt5.9 + MSVC2015_64
数据库中有个数据表,每次初始化数据库的时候用到,跟用户说明了不要放在中文路径下,但是作为甲方,怎么能听你的,他连你的软件使用手册都不看的好吗!
必须放在中文路径下,虽然我不会手动用到它,但它必须得在中文目录下!
阿西吧!本着用户是上帝的原则,开始了一波改动。
先从中文路径说起,在不进行其他文件格式的变动的情况下(比如将文件由utf8转成asicll之类的情况下),由QFileDialog获取的路径是正常的,但是如果手动构造一个字符串 D:/360安全浏览器下载/source/TESTDATA.sql,就会出现如下情况

从输出来看(调试的窗口就懒得截图了),可以看的出来中文字符应该是解析了的,但是最后一个字符“载”解析出错,查阅无果,试了下在不使用MSVC的情况下,只使用MINGW32,就不会出现这个问题,说明问题还是在MSVC的身上。
之前查到一篇博客说,VS把文件格式还是字符集什么东东改成了utf8不带bom头的啥玩意(原谅我忘了,这个东西了解下就好),造成了和qt不一致的原因,行,那就不要手动构造了。
用QFileDialog获取的带有中文路径的字符串,转成char*

附注:import_file为带有中文路径的字符

最低0.47元/天 解锁文章
2435

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



