首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt5中文乱码解决办法

2013-04-26 
Qt5中文乱码解决方法目前试了两种方法一:QStringLiteralsetWindowTitle(QStringLiteral(我是中文))二:Q

Qt5中文乱码解决方法
目前试了两种方法
一:QStringLiteral


setWindowTitle(QStringLiteral("我是中文"));

二:

QTextCodec *codec = QTextCodec::codecForName("GB18030");
setWindowTitle(codec->toUnicode("我是中文"));


请问还有没有别的解决方法,这样太麻烦啊 Qt5?乱码
[解决办法]
最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease
[解决办法]

        QTextCodec::setCodecForCStrings( QTextCodec::codecForLocale() );   
        QTextCodec::setCodecForTr( QTextCodec::codecForName( "utf8" ) );
在最前加上这两句就可以显示中文了
[解决办法]
a)  如果以前的源文件编码是GBK的,则需要使用QString::fromLocal8Bit()函数将原来的汉字括起来;或者直接将源文件编码转换成UTF-8的(缺点是MSVC编译器不能方便的使用了)。我使用了使用QString::fromLocal8Bit()来调用的方式(当然了,另写便捷函数或宏来处理)

b) 如果以前的源文件编码是UTF-8的,则什么都不用动。


[解决办法]
引用:
最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease

+1
[解决办法]
引用:
引用:最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease

这么说的话,那我从数据库里读出来显示的中文怎么办呢?不是预先设置的

只要写入和读出用一样的codec即可。
[解决办法]
setWindowTitle(QString::fromUtf8("我是中文"));
[解决办法]
引用:
引用:引用:引用:最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease

这么说的话,那我从数据库里读出来显示的中文怎么办呢?不是预先设置的
只要写入和读出用一样的codec即可。

每个中文都要用codec包起来这么麻烦吗
    ……

在main.cpp设置一次就行了。
[解决办法]
引用:
解决了,只要文件编码是utf-8就不会乱码


+1

我发现了 这个不是Qt5的问题  而是新版Qt creater的问题
我用Qt4  然后用新版的Qt creater也是要这样设置换成旧版的creater就不会  
[解决办法]
引用:
目前试了两种方法
一:QStringLiteral
C/C++ code?1setWindowTitle(QStringLiteral("我是中文"));
二:
C/C++ code?12QTextCodec *codec = QTextCodec::codecForName("GB18030");setWindowTitle(codec->toUnicode("……

你的方法就是好方法,
不过还是少用中文吧
[解决办法]
QString::Fromlocal8bit("我是中文")

热点排行