• 5042阅读
  • 6回复

[提问]qt中文问题 [复制链接]

上一主题 下一主题
离线easylife
 
只看楼主 倒序阅读 楼主  发表于: 2008-05-31
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
请问高手,怎样用QString存放中文呢,存入了中文的QString又如何用std::out输出呢?
离线taomic

只看该作者 1楼 发表于: 2008-05-31
QString 可以直接存储中文,建议用UTF-8格式
再输出格式也为UTF-8就行了
离线focusoncdr

只看该作者 2楼 发表于: 2008-05-31
如果不是UTF8编码
就用下面类似的语句:
  1. QTextCodec* codec = QTextCodec::codecForName("GBK");
  2. QString strTemp = codec->toUnicode("测试");
离线easylife
只看该作者 3楼 发表于: 2008-05-31
我用下面的代码试的,不行啊
#include<QString>
#include<iostream>
int main(){
QString s="谢谢";
std::cout<<s.toUtf8();
return 0;
}
错误: ambiguous overload 为‘operator<<’在‘std::cout << QString::toUtf8() const()’中
改成了下面形式没错误了,不过也没输出。
#include<QString>
#include<iostream>
#include<QTextCodec>
int main(){
QTextCodec* codec=QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForCStrings(codec);
QString s="谢谢";
std::cout<<qPrintable(s);
return 0;
}
请问具体应怎么写,谢谢!
离线easylife
只看该作者 4楼 发表于: 2008-06-01
呵呵,请XChinux大哥直接答复小弟吧,多谢了!
离线浪漫天使
只看该作者 5楼 发表于: 2008-06-02
QString s=QString::fromLocal8Bit("谢谢");
离线easylife
只看该作者 6楼 发表于: 2008-06-04
多谢!
快速回复
限100 字节
 
上一个 下一个