dbzhang800:1. 首先,去掉那三行代码。
2. 其次,告诉大家你代码中具体是怎么做的,乱码是什么样子的(哪怕是一个截图也好)。
(2014-12-04 13:19)
首先,我的问题不是代码本身有中文的问题,我的代码中不涉及任何非英文字符。
其次,代码中没有做任何跟编码相关的设置,包括那三行。
第三,乱码把系统编码设置为”非UTF-8“出现的。使用 QFiledialog 的DontUseNativeDialog方式去浏览文件系统, 查看中文文件名为乱码。
其实就是一个普通的QT程序,应该完全可以使用QT里的例子来实验,但是Centos yum下载 qt-demos,其中没有使用 QFiledialog浏览文件的例子。或许可以在Ubuntu上试试。
我猜想是这样的: 我是在系统在UTF-8 的时候修改的中文名,文件系统也是以UTF-8 来存储文件名的,当把系统改成 GB2312后,glib会使用GB2312来呈现文件名,所以会出现乱码,——在shell里也会出现乱码的现象可以佐证——QT的DontUseNativeDialog 的GUI 和shell一样,都是基于glib的,所以都是乱码。
但是,GNOME桌面可能更加的智能,它native的会记录或者识别文件名的编码(我改名就是在桌面里弄的,没准它暗中记录了文件名编码),也或者,单单修改locale文件,并不完全的改变了系统的编码环境。
---------------------------------------------------------
我阅读了
[建议]QtC++源码中使用中文所需了解的细节 [复制链接][提问]关于Qt4程序支持中文方法的总结[复制链接]谢谢你们的总结