QT字符转换,中文乱码等随笔记录

1.把QString转换为 double,float,int等类型

bool ok;

double d;

double d=QString("1234.56e-02").toDouble(&ok); //ok=true;d;12.3456.

float f=str.toFloat(&ok); //转换失败时返回0.0,ok=false;

int dec=str.toInt(&ok);

Qstring 转换char*问题!

方法一:
QString qstr("hello,word");
const char * p = qstr.toLocal8Bit().data();
方法二:
const char *p = qstr.toStdString().data();

时间: 2024-11-05 18:10:34

QT字符转换,中文乱码等随笔记录的相关文章

jni中字符转换中文乱码的处理方法

转自:http://blog.sina.com.cn/fangaosjtu 这两天在学习使用jni,在java程序中,调用海量词典的dll.利用jni的GetStringChars函数和NewString函数时,遇到了中文乱码的问题,折腾了一个晚上.查阅了一些资料,总结如下: 一.相关概念 java内部是使用16bit的unicode编码(UTF-16)来表示字符串的,无论中文英文都是2字节: jni内部是使用UTF-8编码来表示字符串的,UTF-8是变长编码的unicode,一般ascii字符

Qt查询MYSQL中文乱码问题

Qt的默认编码是utf-8,而mysql的编码是在安装数据库(或后续可更改)就时设置的.有时候两者可能不一样,我们不可能去为了匹配Qt而去更改MYSQL的编码(确实可以更改).所以只能在打开数据库连接操作的时候设置编码了,即在QSqlDatabase对象调用open()方法之后设置. 设置方法为: sqldb.exec("SET NAMES 'XXXX'"); 注意:sqldb是一个QSqlDatabase对象,XXXX是MYSQL数据库的编码名称,如我的就是db.exec("

关于QT中 tr(" ")中文乱码问题

第一次写博,多担待! 直接上解决办法,本人亲自测试通过! 这是乱码截图: 修改main.cpp文件 (1)添加头文件 #include <QTextCodec> (2)在main函数中添加如下代码: QTextCodec *codec = QTextCodec::codecForName("utf8"); QTextCodec::setCodecForLocale(codec); QTextCodec::setCodecForCStrings(codec); QTextCo

Qt字符转换

1.QString  -> char* #include<QTextCodec> QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); QString str="中国人民"; char* ch; // QByteArray ba = str.toLatin1(); QByteArray ba = str.toLocal8Bit(); ch=ba.data(); qDebu

(转)QT中文乱码与国际化支持

Qt内部采用的全Unicode编码,这从根本上保证了多国语界面实现的正确性和便捷性.Qt本身提供的linguist工具,用来实现翻译过程十分方便.MFC中利用资源DLL切换资源,或使用多个RC文件进行不同语言版本编译等方法都十分麻烦,如果你曾经使用过MFC,QT解决多语言问题的便捷性绝对会让你感觉是一种享受.本文讨论以下几个方面内容: 1.  QT中解决中文乱码的方法: 2.  QT中实现国家化支持. 3.  对话框实现多语言 一.       中文乱码 1.  在程序中直接使用中文,需要在程序

解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)——ubuntu环境设置默认是utf-8,文件编码可使用Encodersoft批量转换

一.Qt环境设置 文件从window上传到Ubuntu后会显示乱码,原因是因为ubuntu环境设置默认是utf-8,Windows默认都是GBK.Windows环境下,Qt Creator,菜单->工具->选项->文本编辑器->行为->文件编码:默认编码:System(简体中文windows系统默认指的是GBK编码,即下拉框选项里的GBK/windows-936-2000/CP936/MS936/windows-936) 二.编码知识科普Qt常见的两种编码是:UTF-8和GB

Qt中文乱码问题(比较清楚,同一个二进制串被解释成不同的语言)

文章来源:http://blog.csdn.net/brave_heart_lxl/article/details/7186631 以下是dbzhang关于qt中文乱码问题原因的阐述,觉得不错: 首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString. 很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四

QT 中文乱码2

以下是dbzhang关于qt中文乱码问题原因的阐述,觉得不错: 首先呢,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString. 很简单的问题,"我是中文"这样写的时候,它是传统的 char 类型的窄字符串,我们需要的只不过是通过某种方式告诉QString 这四个汉字采用的那种编码.而问题一般都出在很多用户对自己当前的编码没太多概念, 于是 一个简 单的 Qt 程序 下面这个小程序,估计大家

编码(ACSII unicod UTF-8)、QT输出中文乱码深入分析

总结: 1. qt输出中文乱码原因分析 qt的编程环境默认是utf-8编码格式(关于编码见下文知识要点一): cout << "中文" << endl; 程序运行,程序并不认识ANSI,UTF-8以及任何其他编码.系统只知道处理你给它的字符的二进制表示. 关于  "中""文" 的3种编码二进制内容: ANSI(GBK): 0xd6d0  0xcec4 UTF-8: 0xe4b8ad 0xe69687 Unicode: 0x