• 5616阅读
  • 8回复

【提问】字符编码问题? [复制链接]

上一主题 下一主题
离线tasteprogram
 
只看楼主 倒序阅读 楼主  发表于: 2005-11-07
各位大侠,好:
    请问从QTextEdit->text()方法得到的字符串和直接写在程序里的字符串在编码上有什么不同。我的一个应用,在使用QTextEdit->text()得来的字符串就能正常显示,可是使用直接写在程序里的字符串发过去就是乱码。请问我如何做转换?
    谢谢!复函为盼!
[ 此贴被XChinux在2005-11-07 09:55重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2005-11-07
在本版有很多关于字符集设定的帖子,你查找一下。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线80437
只看该作者 2楼 发表于: 2005-11-07
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
     QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

主程序中加上这两句在看看。
离线zaurus
只看该作者 3楼 发表于: 2005-11-07
QString::fromLocal8Bit("这里的中文可以正常显示!");
离线XChinux

只看该作者 4楼 发表于: 2005-11-07
注意你的源文件的编码必须是与你使用的编码相同的。
一般会用GB2312/GBK等编码
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线tasteprogram
只看该作者 5楼 发表于: 2005-11-08
谢谢,各位。该问题已经解决。在main.c中加入
#include <qtextcodec.h>
qApp->setDefaultCodec( QTextCodec::codecForName("GBK") );
即可。
离线tingxx

只看该作者 6楼 发表于: 2005-11-09
下面是引用tasteprogram于2005-11-08 10:14发表的:
谢谢,各位。该问题已经解决。在main.c中加入
#include <qtextcodec.h>
qApp->setDefaultCodec( QTextCodec::codecForName("GBK") );
即可。

这样不利于程序的国际化呀
QT自带的文档真是个好东西
一定要好好看呀
离线szy333

只看该作者 7楼 发表于: 2007-08-08
加上这三句就可以了。
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
离线wxashow

只看该作者 8楼 发表于: 2007-08-09
如果你用的RedHad版本,那个编码是Utf8,在你要加的文字前面加上trUtf8即可:
QTextEdit -> text( trUtf8( "内容" ) );
其他的版本自己查一下!
快速回复
限100 字节
 
上一个 下一个