一:QStringLiteral
setWindowTitle(QStringLiteral("我是中文"));
二:
QTextCodec *codec = QTextCodec::codecForName("GB18030");
setWindowTitle(codec->toUnicode("我是中文"));
请问还有没有别的解决方法,这样太麻烦啊
26 个解决方案
#1
自己顶一下!
#2
最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease
#3
QTextCodec::setCodecForCStrings( QTextCodec::codecForLocale() );
QTextCodec::setCodecForTr( QTextCodec::codecForName( "utf8" ) );
在最前加上这两句就可以显示中文了
#4
Qt5中没有这两个函数了
#5
a) 如果以前的源文件编码是GBK的,则需要使用QString::fromLocal8Bit()函数将原来的汉字括起来;或者直接将源文件编码转换成UTF-8的(缺点是MSVC编译器不能方便的使用了)。我使用了使用QString::fromLocal8Bit()来调用的方式(当然了,另写便捷函数或宏来处理)
b) 如果以前的源文件编码是UTF-8的,则什么都不用动。
b) 如果以前的源文件编码是UTF-8的,则什么都不用动。
#6
+1
#7
这么说的话,那我从数据库里读出来显示的中文怎么办呢?不是预先设置的
#8
只要写入和读出用一样的codec即可。
#9
每个中文都要用codec包起来这么麻烦吗
#10
setWindowTitle(QString::fromUtf8("我是中文"));
#11
在main.cpp设置一次就行了。
#12
解决了,只要文件编码是utf-8就不会乱码
#13
+1
我发现了 这个不是Qt5的问题 而是新版Qt creater的问题
我用Qt4 然后用新版的Qt creater也是要这样设置换成旧版的creater就不会
#14
现在问题是文件编码是utf-8的,但是有些字还是显示不出来,比如说"用户名:"这个字符串只能显示出"用户"两个字,后面的都是乱码,要么就在"用户名: "后面加个空格就可以了,字数好像只有偶数才能全部显示,不知道怎么回事
#15
你的方法就是好方法,
不过还是少用中文吧
#16
不用中文用翻译?
对了,用QString::toLocal8Bit ()也行
#17
QString::Fromlocal8bit("我是中文")
#18
打错,呵呵……
#19
我也遇到同类问题
#20
是啊 我也发现了,只有源代码文件是UTF8编码的,就不会出问题,
但是我在QT Creator中直接编写代码,怎么才能使输入的内容是UTF8编码的呢?编辑设置里面也没有找到。。。。
有知道的吗?
#21
#22
同问+1....
#23
QT5开发及实例 源代码是UTF-8的,出现编译问题,也是因为中文导致的问题
#24
楼主朋友您好,我现在遇到和您一样的问题,我的开发环境是:Qt5.2+VS2012,也出现中文乱码。
我现在要把数据库中的记录放在界面展示,但是数据库中是有中文的,如何显示呢
#25
setWindowTitle(QString::fromUtf8("我是中文")); //这个可以
setWindowTitle(QString::fromUtf8("我是中")); //这个就不可以,我试了好多,奇数个都不行,它都说有常量换行符,偶数个都可以,
请问是为什么?怎么解决?
setWindowTitle(QString::fromUtf8("我是中")); //这个就不可以,我试了好多,奇数个都不行,它都说有常量换行符,偶数个都可以,
请问是为什么?怎么解决?
#26
首先选中乱码源文件,比如main.cpp。然后点击“编辑”-“Select Encoding”-"utf8"
然后Ctrl+Z,运行一下就是中文了(忽略上栏提示)。我也不知道为什么,反正是可以用的。
然后Ctrl+Z,运行一下就是中文了(忽略上栏提示)。我也不知道为什么,反正是可以用的。
#1
自己顶一下!
#2
最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease
#3
QTextCodec::setCodecForCStrings( QTextCodec::codecForLocale() );
QTextCodec::setCodecForTr( QTextCodec::codecForName( "utf8" ) );
在最前加上这两句就可以显示中文了
#4
QTextCodec::setCodecForCStrings( QTextCodec::codecForLocale() );
QTextCodec::setCodecForTr( QTextCodec::codecForName( "utf8" ) );
在最前加上这两句就可以显示中文了
Qt5中没有这两个函数了
#5
a) 如果以前的源文件编码是GBK的,则需要使用QString::fromLocal8Bit()函数将原来的汉字括起来;或者直接将源文件编码转换成UTF-8的(缺点是MSVC编译器不能方便的使用了)。我使用了使用QString::fromLocal8Bit()来调用的方式(当然了,另写便捷函数或宏来处理)
b) 如果以前的源文件编码是UTF-8的,则什么都不用动。
b) 如果以前的源文件编码是UTF-8的,则什么都不用动。
#6
最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease
+1
#7
最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease
这么说的话,那我从数据库里读出来显示的中文怎么办呢?不是预先设置的
#8
引用 2 楼 HeadmasterWang 的回复:最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease
这么说的话,那我从数据库里读出来显示的中文怎么办呢?不是预先设置的
只要写入和读出用一样的codec即可。
#9
引用 7 楼 rophie 的回复:引用 2 楼 HeadmasterWang 的回复:最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease
这么说的话,那我从数据库里读出来显示的中文怎么办呢?不是预先设置的
只要写入和读出用一样的codec即可。
每个中文都要用codec包起来这么麻烦吗
#10
setWindowTitle(QString::fromUtf8("我是中文"));
#11
引用 8 楼 jdwx1 的回复:引用 7 楼 rophie 的回复:引用 2 楼 HeadmasterWang 的回复:最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease
这么说的话,那我从数据库里读出来显示的中文怎么办呢?不是预先设置的
只要写入和读出用一样的codec即可。
每个中文都要用codec包起来这么麻烦吗
……
在main.cpp设置一次就行了。
#12
解决了,只要文件编码是utf-8就不会乱码
#13
解决了,只要文件编码是utf-8就不会乱码
+1
我发现了 这个不是Qt5的问题 而是新版Qt creater的问题
我用Qt4 然后用新版的Qt creater也是要这样设置换成旧版的creater就不会
#14
现在问题是文件编码是utf-8的,但是有些字还是显示不出来,比如说"用户名:"这个字符串只能显示出"用户"两个字,后面的都是乱码,要么就在"用户名: "后面加个空格就可以了,字数好像只有偶数才能全部显示,不知道怎么回事
#15
目前试了两种方法
一:QStringLiteral
C/C++ code?1setWindowTitle(QStringLiteral("我是中文"));
二:
C/C++ code?12QTextCodec *codec = QTextCodec::codecForName("GB18030");setWindowTitle(codec->toUnicode("……
你的方法就是好方法,
不过还是少用中文吧
#16
引用 楼主 rophie 的回复:目前试了两种方法
一:QStringLiteral
C/C++ code?1setWindowTitle(QStringLiteral("我是中文"));
二:
C/C++ code?12QTextCodec *codec = QTextCodec::codecForName("GB18030");setWindowTitle(c……
不用中文用翻译?
对了,用QString::toLocal8Bit ()也行
#17
QString::Fromlocal8bit("我是中文")
#18
打错,呵呵……
#19
我也遇到同类问题
#20
解决了,只要文件编码是utf-8就不会乱码
是啊 我也发现了,只有源代码文件是UTF8编码的,就不会出问题,
但是我在QT Creator中直接编写代码,怎么才能使输入的内容是UTF8编码的呢?编辑设置里面也没有找到。。。。
有知道的吗?
#21
#22
同问+1....
#23
a) 如果以前的源文件编码是GBK的,则需要使用QString::fromLocal8Bit()函数将原来的汉字括起来;或者直接将源文件编码转换成UTF-8的(缺点是MSVC编译器不能方便的使用了)。我使用了使用QString::fromLocal8Bit()来调用的方式(当然了,另写便捷函数或宏来处理)
b) 如果以前的源文件编码是UTF-8的,则什么都不用动。
QT5开发及实例 源代码是UTF-8的,出现编译问题,也是因为中文导致的问题
#24
最好的办法是写的时候用英文, 然后lupdate生成ts翻译再lrelease
这么说的话,那我从数据库里读出来显示的中文怎么办呢?不是预先设置的
楼主朋友您好,我现在遇到和您一样的问题,我的开发环境是:Qt5.2+VS2012,也出现中文乱码。
我现在要把数据库中的记录放在界面展示,但是数据库中是有中文的,如何显示呢
#25
setWindowTitle(QString::fromUtf8("我是中文")); //这个可以
setWindowTitle(QString::fromUtf8("我是中")); //这个就不可以,我试了好多,奇数个都不行,它都说有常量换行符,偶数个都可以,
请问是为什么?怎么解决?
setWindowTitle(QString::fromUtf8("我是中")); //这个就不可以,我试了好多,奇数个都不行,它都说有常量换行符,偶数个都可以,
请问是为什么?怎么解决?
#26
首先选中乱码源文件,比如main.cpp。然后点击“编辑”-“Select Encoding”-"utf8"
然后Ctrl+Z,运行一下就是中文了(忽略上栏提示)。我也不知道为什么,反正是可以用的。
然后Ctrl+Z,运行一下就是中文了(忽略上栏提示)。我也不知道为什么,反正是可以用的。