
QT/中文
imxiangzi
这个作者很懒,什么都没留下…
展开
-
QT qt5使用qdebug()输出中文 乱码
注:QString 是Unicode编码方式。#includeLPCWSTR str_lpc = "中文";QString str = "中文";qDebug() //乱码qDebug() //正确输出中文qDebug() str; //乱码qDebug() str.toStdString().c_str(); //正确输出中文from:http://blog.转载 2017-08-18 15:03:16 · 6794 阅读 · 1 评论 -
qt中的toUtf8, toLatin1, Local8bit, toUcs4
1 首先说下字符集。gb18030字符集兼容了gbk字符集,以两个字节表示一个文字。windows系统可能使用的就是这两种的一种。unicode字符集以2个或以上的字节表示一个汉字。通用字符集(Universal Character Set, UCS)是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。UCS-2用两个字节编码,UCS-4用4个字转载 2017-08-18 15:05:04 · 7158 阅读 · 0 评论 -
ANSI是什么编码?
用Notepad++创建一个文本文件text.txt,其默认编码格式为ANSI(乍看之下,还以为是ASCII呢),输入汉字居然不是乱码:保存为test.txt,发送给你美国的同事Bob。他也用Notepad++,不幸的是,却发现你的文件内容是这样的:也许你会认为:你用的是中文系统,能正常显示中文;他用的是英文系统,不能显示中文!这么想,好像很有道理呢!但是再细想一下:一个系转载 2017-08-18 15:08:19 · 83121 阅读 · 26 评论 -
从char到QChar
char类型是c/c++中内置的类型,描述了1个字节的内存信息的解析。比如: char gemfield=’g’; 那么在由gemfield标记的这块内存的大小就是1个字节,信息就是01100111,8位。 再比如: char gemfield=’汉’; 那么由gemfield标记的这块内存的大小依然转载 2017-08-18 15:12:13 · 408 阅读 · 0 评论 -
字符编码之UCS-2与Utf-8
很多操作系统都直接支持utf-8字符串操作,只有MS这个异类用的Unicode,就是所谓的ucs-2如果写关于跨平台的代码,那么避免不了要做编码转化这里贴一下今天写的把Unicode转化为Utf-8的代码Ucs2BeToUcs2Le负责将大端转化为小端Ucs2ToUtf8负责将Unicode转化为Utf-8Utf8ToUcs2负责将Utf-8转化为Unicode本转化函数只考虑了3转载 2017-08-18 15:57:21 · 3586 阅读 · 0 评论 -
UCS-2和UCS-4
介绍Unicode之前,首先要讲解一些基础知识。虽然跟Unicode没有直接的关系,但想弄明白Unicode,没这些还真不行。字节和字符的区别咦,字节和字符能有什么区别啊?不都是一样的吗?完全正确,但只是在古老的DOS时代。当Unicode出现后,字节和字符就不一样了。字节(octet)是一个八位的存储单元,取值范围一定是0~255。而字符(character,或者word转载 2017-08-18 15:59:38 · 7913 阅读 · 0 评论 -
Qt中文编码和QString类Unicode编码转换
1 window中文GBK编码和Unicode编码转换//GBK‐> QStringQString str = QString::fromLocal8Bit("新浪微博");//QString ‐> GBKQString text = ui.lineEdit‐>text();QByteArray bytes = text.toLocal8Bit();const char* gb转载 2017-08-18 16:20:58 · 1676 阅读 · 1 评论 -
Qt中的unicode转换
在Qt中,在大多数情况下都是采用unicode的形式存储的,但是QByteArray实际上是以char的形式存储的,因此转换成unicode表示的QString时需要根据编码的类型进行转换。[cpp] view plain copy#include #include #include #include #incl转载 2017-08-18 16:21:53 · 6688 阅读 · 0 评论