在Qt中,有个很烦人的问题就是编码问题。如果你碰到传入路径或者一些中文字符串时,发现卡死了,或者乱码,那么建议你多加仔细排查编码问题。有时候不同的PC采用不同的编码方式,比如utf-8, GB2312...很可能在你本电脑上正常,换了一台电脑就不行。我就吃过这种暗亏。那么如何避免这些暗亏呢?
首先开发时,对于qtcreator编译器安装或者说第三方插件安装最好路径不带中文,环境变量的设置也不建议有中文出现,甚至于在你的代码里注释都不建议有中文,只要不出现中文,那么你出问题的时候就少了一个隐患。 不然你在编译的过程中,编译器很难去找到对应的路径。有些资源或者以exe所在目录作为参考路径的,很容易找不到对应路径,这就是暗坑。
其次,代码要严谨,最好做好中文的判定准备。经验丰富的程序员老鸟,一定有敏感性的。 路径的中文字段,斜杠问题,跨平台下的尴尬点。这些都是隐藏的大坑。斜杠建议无论时windows还是linux平台都使用反斜杠。中文路径下的编码转换
最后是日志的标记,作为程序员,留一处log,等于是留一条给自己的后路,出问题一看log即可知道哪里崩掉了。 比如看下图,我在自己电脑运行的没问题,到了另外一台电脑就崩掉了,后来一看log就知道是中文编码问题。