1、文本流设置unicode小端模式

2、写入文本前两个字节FF FE

3、字符串转成unicode编码

QList<QByteArray> list =  QTextCodec::availableCodecs();
//可以获取Qt支持的编码,下面列出字符串的几种编码名称
//GBK  GB2312
//unicode  小端
//UTF-8
//UnicodeLitteUnmarked  小端
//UnicodeBigUnmarked    大端
  1. #include <QApplication>
  2. #include <QFile>
  3. #include <QTextStream>
  4. #include <QTextCodec>
  5. int main(int argc, char *argv[])
  6. {
  7. QApplication a(argc, argv);
  8. //    Widget w;
  9. //    w.show();
  10. QFile fielWrite("a.txt");
  11. if (!fielWrite.open(QIODevice::ReadWrite | QIODevice::Text | QIODevice::Truncate))
  12. {
  13. return 0;
  14. }
  15. QTextStream out(&fielWrite);
  16. out.setCodec(QTextCodec::codecForName("unicode"));//unicode小端模式
  17. //out.setAutoDetectUnicode(true); //好像没用处
  18. QChar head = 0xfeff;//unicode文件头 文本里前两个字节为FFFE
  19. out << head;
  20. QString str = "我";//"我"在Qt文本编辑器里默认是UTF-8编码格式,转成QString之后为unicode编码
  21. out << str;
  22. fielWrite.close();
  23. return a.exec();
  24. }

http://blog.csdn.net/bladeandmaster88/article/details/54868654

在qt5.9中,使用
out.setCodec(QTextCodec::codecForName("unicode"));//unicode小端模式 
无法输出unicode的txt文件,需要改为:
out.setCodec("UTF-16");
详细请见qt帮助文档

----------------------------------------------------------------------------------------------------------------

QList<QByteArray> list = QTextCodec::availableCodecs();
qDebug() << list;

UTF-8
ISO-8859-1
latin1
CP819
IBM819
iso-ir-100
csISOLatin1
ISO-8859-15
latin9
UTF-32LE
UTF-32BE
UTF-32
UTF-16LE
UTF-16BE
UTF-16
System
Big5-HKSCS
Big5
Big5-ETen
CP950
windows-949
CP949
EUC-KR
Shift_JIS
SJIS
MS_Kanji
ISO-2022-JP
JIS7
EUC-JP
GB2312
GBK
CP936
MS936
windows-936
GB18030
hp-roman8
roman8
csHPRoman8
TIS-620
ISO 8859-11
WINSAMI2
WS2
macintosh
Apple Roman
MacRoman
windows-1258
CP1258
windows-1257
CP1257
windows-1256
CP1256
windows-1255
CP1255
windows-1254
CP1254
windows-1253
CP1253
windows-1252
CP1252
windows-1251
CP1251
windows-1250
CP1250
IBM866
CP866
csIBM866
IBM874
CP874
IBM850
CP850
csPC850Multilingual
ISO-8859-16
iso-ir-226
latin10
ISO-8859-14
iso-ir-199
latin8
iso-celtic
ISO-8859-13
ISO-8859-10
iso-ir-157
latin6
ISO-8859-10:1992
csISOLatin6
ISOtΰP

Qt写入unicode编码格式的文本(用QChar写入BOM标记,并且列出所有Qt支持的字符集)的更多相关文章

  1. Delphi读取和写入utf-8编码格式的文件

    读取UTF-8格式的文件内容 function LoadUTF8File(AFileName: string): string; var ffileStream:TFileStream; fAnsiB ...

  2. python2下向文件写入unicode编码的内容,codecs包

    python内置库中的open方法只能读写ascii码,如果想写入Unicode字符,需要使用codecs包. # -*- coding: utf-8 -*- import codecs import ...

  3. Logstash读取文本信息并写入到ES

    Logstash读取文本信息并写入到ES 前提是ELK安装没问题 进入到logstash安装目录下的bin目录(我的logstash安装目录:/usr/local/) [root@es1 bin]# ...

  4. DELPHI7加载UNICODE编码格式的TXT显示为乱码的解决方法

    DELPHI7的STRING默认是ANSI编码,加载UNICODE编码格式的TXT显示为乱码,解决方法如下: procedure TForm1.Button1Click(Sender: TObject ...

  5. ASCII、Unicode、UTF-8、UTF-8(without BOM)、UTF-16、UTF-32傻傻分不清

    ASCII.Unicode.UTF-8.UTF-8(without BOM).UTF-16.UTF-32傻傻分不清 目录 ASCII.Unicode.UTF-8.UTF-8(without BOM). ...

  6. Win32下 Qt与Lua交互使用(二):在Lua脚本中使用Qt类

    话接上篇.成功配置好Qt+Lua+toLua后,我们可以实现在Lua脚本中使用各个Qt的类.直接看代码吧. #include "include/lua.hpp" #include ...

  7. CSS 文本溢出时显示省略标记

    如标题所示... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.o ...

  8. ES 18 - (底层原理) Elasticsearch写入索引数据的过程 以及优化写入过程

    目录 1 Lucene操作document的流程 1.1 添加document的流程 1.2 删除document的流程 2 优化写入流程 - 实现近实时搜索 2.1 流程的改进思路 2.2 设置re ...

  9. java写入文件之txt文本

    FileWriter fw=new FileWriter("D:\\test.txt") fw.write("文本值") fw.flush() fw.close ...

随机推荐

  1. 当鼠标聚焦时输入框变色(focus事件实例)

    当鼠标聚焦时输入框变色css相关,鼠标点击<input>输入域后出现有颜色的边框原理:css伪类之input输入框鼠标点击边框变色效果伪类元素的使用::focus 一:当输入框获得焦点时, ...

  2. Java基础学习总结(53)——HTTPS 理论详解与实践

    前言 在进行 HTTP 通信时,信息可能会监听.服务器或客户端身份伪装等安全问题,HTTPS 则能有效解决这些问题.在使用原始的HTTP连接的时候,因为服务器与用户之间是直接进行的明文传输,导致了用户 ...

  3. Android圆环控件

    Android圆环控件 近期在做一个功能.界面效果要求例如以下: 看到这个界面,我首先想到了曾经在做phone模块的时候,我们定制的来电界面InCallTouchUi,界面效果是相似的. 来电控件使用 ...

  4. 关于在IISserver上执行asp.net Web程序出现以下 “Could not load file or assembly。。。”问题的

    Could not load file or assembly 'System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, Public ...

  5. 【Codeforces Round #299 (Div. 2) B】Tavas and SaDDas

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 每次取出最小的数字,在后面加上一个4或一个7就好; 会发现最后的数字很少的. [代码] #include <bits/stdc ...

  6. 【Codeforces Round #432 (Div. 1) B】Arpa and a list of numbers

    [链接]h在这里写链接 [题意] 定义bad list是一个非空的.最大公约数为1的序列.给定一个序列,有两种操作:花费x将一个元素删除.花费y将一个元素加1,问你将这个序列变为good list所需 ...

  7. 字符集和编码II: fat/msdos/vfat (文件名乱码的问题)

    具体到文件名乱码的问题,需要明确两点 第一,文件名作为一个字符串,需要被编码后存入文件系统: 第二,Linux内核无非是个特殊的应用程序,它读取文件名,再把文件名以编码后的形式传递出去. 但Linux ...

  8. OC学习篇之---归档和解挡

    今天我们来看一下OC中的一个重要知识点:归档 OC中的归档就是将对象写入到一个文件中,Java中的ObjectInputStream和ObjectOutputStream来进行操作的.当然在操作的这些 ...

  9. 简要分析unity3d中剪不断理还乱的yield

    在学习unity3d的时候非常easy看到以下这个样例: void Start () { StartCoroutine(Destroy()); } IEnumerator Destroy(){ yie ...

  10. 使用xerces库的一个注意事项

    作者:朱金灿 来源:http://blog.csdn.net/clever101 使用xerces库解析xml文件,结果出现这样一些链接错误: public: static classxercesc_ ...