Qt字符编码,创建中文文件
1.代码文件本身编码;
2.Qt中用于控制读入和写出文件系统时的字符编码由QTextCodec::setCodecForLocale()所决定。一般不用设置,Qt跟系统交互时会根据系统的Locale来更改传给系统的参数的编码;
//utf8格式 QString str1("你好Hello\r\n");QByteArray bLocal = str1.toLocal8Bit(); // 受setCodecForLocale影响,会转换为设定的编码。如果本机不支持指定编码,则会按toLatin1处理QByteArray bUtf8 = str1.toUtf8(); // 不受setCodecForLocale影响,强制转换为UTF-8编码qDebug() << str1; // 正常,Qt会将UTF-16转换为UTF-8输出qDebug() << bLocal; // 乱码,用UTF-8编码输出GBK字节流qDebug() << bUtf8; // 正常,用UTF-8编码输出UTF-8字节流 QString str2 = QString::fromLocal8Bit(bLocal);qDebug() << str2; // 正常,因为上面显式指定字节流来自本机编码,而bLocal正是本机编码GBK QString strTitle("你好Hello");QFile file(strTitle);if(!file.open(QIODevice::WriteOnly|QIODevice::Append))return false;file.write(QString::fromUtf8("你好啊Hello测试中\r\n").toLocal8Bit());file.write(bUtf8);file.write(bLocal);file.write("1122测试中\r\n");file.write(QString::fromUtf8("你好啊Hello\r\n").toLocal8Bit());file.close();//gbk格式
QString str1=QString::fromLocal8Bit("你好Hello\r\n");QByteArray bLocal = str1.toLocal8Bit(); // 受setCodecForLocale影响,会转换为设定的编码。如果本机不支持指定编码,则会按toLatin1处理QByteArray bUtf8 = str1.toUtf8(); // 不受setCodecForLocale影响,强制转换为UTF-8编码qDebug() << str1; // 正常,Qt会将UTF-16转换为UTF-8输出qDebug() << bLocal; // 乱码,用UTF-8编码输出GBK字节流qDebug() << bUtf8; // 正常,用UTF-8编码输出UTF-8字节流QString str2 = QString::fromLocal8Bit(bLocal);qDebug() << str2; // 正常,因为上面显式指定字节流来自本机编码,而bLocal正是本机编码GBKQString strTitle=QString::fromLocal8Bit("你好Hello");QFile file(strTitle);if(!file.open(QIODevice::WriteOnly|QIODevice::Append))return false;file.write(QString::fromLocal8Bit("你好啊Hello测试中\r\n").toLocal8Bit());file.write(bUtf8);file.write(bLocal);file.write("1122测试中\r\n");file.write(QString::fromLocal8Bit("你好啊Hello\r\n").toLocal8Bit());file.close();
转载于:https://www.cnblogs.com/karltong/p/9408819.html
Qt字符编码,创建中文文件相关推荐
- QT项目之创建.pri文件
QT项目之创建.pri文件: https://www.cnblogs.com/xiangtingshen/p/11009627.html 怎么创建pri文件: 第一步:用Qt新建你需要的项目(假如所在 ...
- 前端网页、php与mysql数据库字符编码(解决中文等乱码问题
web开发中经常涉及前端网页--php--mysql之间的数据交互,当数据只有英文时通常不会有什么问题,但一旦涉及中文,三个地方的某一处字符编码不一致(如,网页使用的时gbk而mysql使用utf-8 ...
- 关于字符编码,中文所占字节的整理。
1个字节byte=8bit(比特/位) 1bit=0.125B字节 1个汉字两个字节 16bit,2B. 字符:汉字,数字,字母等 Byte,bit是存储单位 Bit--比特 B --字节 KB- ...
- qt字符编码及数据格式转换
1.字符编码 QString: QString内部可能是使用unicode字符集来存储文字,UTF-8以字节为单位对Unicode进行编码.QString里面的汉字是UTF-8编码的字符集,QStri ...
- 如何在Qt Creator中创建pri文件,以及pri文件的说明
版权声明:本文为博主原创文章,但凡转载此博客者必须附上博客链接 初学Qt的人可还不会接触到这个问题,但是一旦你开始编写某个较大项目的时候,这个问题就不可避免需要解决. 对于大神们来讲可能这是个很简单的 ...
- 设置mysql的字符编码解决中文乱码问题
配置说明 mysql5提供了以下几个设置字符集的系统变量: character_set_client 客户端字符集 character_set_connection 客户端与服务器端连接采用的字符集 ...
- linux 创建中文文件夹,linux下创建文件和文件夹-Go语言中文社区
使用linux系统会有一些常见的命令,譬如说,创建文件夹,创建文件,这些命令都是比较常见的. 方法/步骤 首先说一下touch 创建二进制文件,用法就非常的简单,touch+文件名 之间一定要空格 ...
- Qt设置编码、样式文件、窗体居中和开机自启等方法
#include <QtCore> #include <QtGui> #include <QDesktopWidget>class QtHelper: public ...
- Qt 字符编码转换(UTF-8 转换为 GBK) \u7528\u6237\u672a\u7b7e\u7ea6
UTF-8 转换为 GBK \u7528\u6237\u672a\u7b7e\u7ea6 编码知识(\u7528\u6237\等的就是Unicode编码) 转换编码示例 编码知识(\u7528\u62 ...
最新文章
- pyqtdeploy教程_PyQtdeploy-V2.4 User Guide 中文 (一)
- 时间序列(三)滑动窗口
- EBGAN, LSGAN, BEGAN
- 一劳永逸解决IDEA 2019.3连接MySQL80时区(serverTimezone)问题
- cordova在IOS初次运行,loading加载很久的解决办法
- MySQL—相关子查询
- copy构造函数使用深copy
- 呕心沥血为小白总结13个学习网站-错过了你注定绕弯!
- python显示目录中的文件_Python中的文件和目录操作实现
- 联想服务器开启虚拟化,联想电脑虚拟化开启方法
- C++智能指针(二)模拟实现三种智能指针
- 解开玻尔兹曼机的封印会发生什么?
- 万万没想到,AI算法开发、OCR应用已经进入零门槛时代!
- html搜索框如何加下拉框,js实现带搜索功能的下拉框
- C Tricks(十一)—— 排除一个二维数组的边界
- qq浏览器网页翻译_在线英文翻译、文档翻译,这几款翻译工具你值得拥有
- oracle中rollback的使用方法
- 逍遥模拟器android4.0版本,逍遥安卓模拟器工作室版
- Chrome插件-Dark reader,护眼的黑暗模式浏览器
- Axure RP入门知识-基础功能介绍
热门文章
- magento常用软件
- C# 使用HttpWebRequest提交ASP.NET表单并保持Session和Cookie
- linux 文件管理 教程,Linux文件管理
- mac自带php7降级,MAC更新自带php版本到7.0
- java动态打jar包_java动态加载jar包
- linux 脚本 字符串函数调用函数调用,shell自定义函数及参数调用解析
- php更改asp.net教程,ASP.NET 教程
- python中的随机函数怎么用_Python中随机数的使用方法有那些?
- 黑龙江科技大学计算机类分数线,2019年黑龙江科技大学优势专业排名及分数线...
- keyshot卡住了还能保存吗_倒入醒酒器的红酒一次没喝完,还能倒回酒瓶保存吗?...