setWindowTitle(QStringLiteral("我是中文"));
QTextCodec *codec = QTextCodec::codecForName("GB18030"); setWindowTitle(codec->toUnicode("我是中文"));
[quote=引用 2 楼 HeadmasterWang 的回复:] 最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease
a) 如果以前的源文件编码是GBK的,则需要使用QString::fromLocal8Bit()函数将原来的汉字括起来;或者直接将源文件编码转换成UTF-8的(缺点是MSVC编译器不能方便的使用了)。我使用了使用QString::fromLocal8Bit()来调用的方式(当然了,另写便捷函数或宏来处理) b) 如果以前的源文件编码是UTF-8的,则什么都不用动。
解决了,只要文件编码是utf-8就不会乱码
引用 楼主 rophie 的回复:目前试了两种方法 一:QStringLiteral C/C++ code?1setWindowTitle(QStringLiteral("我是中文")); 二: C/C++ code?12QTextCodec *codec = QTextCodec::codecForName("GB18030");setWindowTitle(c……
目前试了两种方法 一:QStringLiteral C/C++ code?1setWindowTitle(QStringLiteral("我是中文")); 二: C/C++ code?12QTextCodec *codec = QTextCodec::codecForName("GB18030");setWindowTitle(codec->toUnicode("……
引用 7 楼 rophie 的回复:引用 2 楼 HeadmasterWang 的回复:最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease 这么说的话,那我从数据库里读出来显示的中文怎么办呢?不是预先设置的 只要写入和读出用一样的codec即可。
引用 2 楼 HeadmasterWang 的回复:最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease 这么说的话,那我从数据库里读出来显示的中文怎么办呢?不是预先设置的
最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease
16,213
社区成员
26,593
社区内容
加载中
试试用AI创作助手写篇文章吧