QString和string互转中文字符
2012-10-29 21:05
253 查看
QString和string互转中文字符
string-> QString
1 std::string strStd = "中文字符"; 2 QString strQ = QString::fromLocal8Bit(strStd.c_str());
QString
-> string
1 QString strQ("中文字符"); 2 std::string strStd= strQ.toStdString(); 3 QTextCodec *code = QTextCodec::codecForName("gb18030"); 4 // 如果code为0,表示在运行的机器上没有装gb18030字符集。不过一般的中文windows系统中都安装了这一字符集 5 if (code) strStd= code->fromUnicode(strQ).data();
或者用如下方式:
QString s2q(const string &s)
{
return QString(QString::fromLocal8Bit(s.c_str()));
}
string q2s(const QString &s)
{
return string((const char *)s.toLocal8Bit());
}
C/C++中读取中文路径文件的方法
有时候用ifstream或ofstream打开带有中文路径的文件会失败。解决办法:
1、使用C语言的函数设置为中文运行环境
setlocale(LC_ALL,"Chinese-simplified");
2、使用STL函数设置为系统语言环境
std::locale::global(std::locale(""));
当然选2啦!
1.最近编程采用C++文件操作来读入一个文件,代码:
ifstream inf;
inf.open(strpath); //通过文件路径打开文件
当文件路径strpath中带有中文时程序运行错误,导致卡死,后来终于弄清用C++方法打开带中文路径的文件时会有BUG,谁叫这东东是老外写的呢,但是通过下面的方法可以解决,如代码:
ifstream inf; //C++方式打开文件
locale::global(locale("")); //将全局区域设为操作系统默认区域
inf.open(strpath); //通过文件路径打开文件
locale::global(locale("C")); //还原全局区域设定
相关文章推荐
- QString和string互转中文字符
- QString和string互转中文字符
- QString和string互转中文字符
- 【Qt】QString,std::string,char中文字符互相转换
- QString和string互相转换中文字符
- 包含中文字符的QString对象转换为python的string对象的方法
- [qt]qstring和string中文支持转换问题
- SpringMVC中@RequestBody 返回对象为String类型时中文字符乱码
- 解决string.len 处理 utf-8 中文字符不正确的问题
- QT 将含有中文字符的QString转化为char*类型
- 今天遇到Mysql插入数据里有中文字符出现Incorrect string value的错误
- Requst.QueryString[]取得的值是中文时,有时少了一个或者多个字符的问题
- 使用QTextCodec/QString/QByteArray/std::string时中文编码问题
- String中文字符转码
- PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
- Java String类型含普通字符以及中文字符,计算等价的中文字符串长度
- jni中字符转换中文乱码的处理方法 Java String转换成const char*(转摘)
- 【python】 关于去掉转义字符\,输出中文字符(decode("string_escape"))
- QT处理中文路径名时把QString转换成std::string
- 关于String中各种编码中文字符的字节长度