QTextCodec Class 参考手册
来源:互联网 发布:mac鼠标右键设置 编辑:程序博客网 时间:2024/06/05 11:40
QTextCodec Class 参考手册
[QtCore module]
QTextCodec类提供了文字编码转换. More...
#include <QTextCodec>
Note: 此类所有函数可 重载, 除了 setCodecForTr(), setCodecForCStrings(), QTextCodec(), 和 ~QTextCodec().
- List of all members, including inherited members
- Qt 3 support members
Public Types
- class ConverterState
- enum ConversionFlag { DefaultConversion, ConvertInvalidToNull, IgnoreHeader }
- flags ConversionFlags
Public Functions
- virtual QList<QByteArray> aliases () const
- bool canEncode ( QChar ch ) const
- bool canEncode ( const QString & s ) const
- QByteArray fromUnicode ( const QString & str ) const
- QByteArray fromUnicode ( const QChar * input, int number, ConverterState * state = 0 ) const
- QTextDecoder * makeDecoder () const
- QTextEncoder * makeEncoder () const
- virtual int mibEnum () const = 0
- virtual QByteArray name () const = 0
- QString toUnicode ( const QByteArray & a ) const
- QString toUnicode ( const char * input, int size, ConverterState * state = 0 ) const
- QString toUnicode ( const char * chars ) const
Static Public Members
- QList<QByteArray> availableCodecs ()
- QList<int> availableMibs ()
- QTextCodec * codecForCStrings ()
- QTextCodec * codecForHtml ( const QByteArray & ba, QTextCodec * defaultCodec )
- QTextCodec * codecForHtml ( const QByteArray & ba )
- QTextCodec * codecForLocale ()
- QTextCodec * codecForMib ( int mib )
- QTextCodec * codecForName ( const QByteArray & name )
- QTextCodec * codecForName ( const char * name )
- QTextCodec * codecForTr ()
- void setCodecForCStrings ( QTextCodec * codec )
- void setCodecForLocale ( QTextCodec * c )
- void setCodecForTr ( QTextCodec * c )
Protected Functions
- QTextCodec ()
- virtual ~QTextCodec ()
- virtual QByteArray convertFromUnicode ( const QChar * input, int number, ConverterState * state ) const = 0
- virtual QString convertToUnicode ( const char * chars, int len, ConverterState * state ) const = 0
详细说明
QTextCodec类提供文字之间的编码转换.
Qt 使用 Unicode 存储, 操作字符串. 在许多情况下,你可能希望使用不懂得编码来处理数据. 例如, 大多数Japanese文档仍用Shift-JIS or ISO 2022-JP存储, 然而Russian用户常用KOI8-R or Windows-1251.
Qt 提供了一套QTextCodec类去帮助转换非-Unicode格式到Unicode.你也可以创建你自己的编码类.
支持的编码有:
- Apple Roman
- Big5
- Big5-HKSCS
- CP949
- EUC-JP
- EUC-KR
- GB18030-0
- IBM 850
- IBM 866
- IBM 874
- ISO 2022-JP
- ISO 8859-1 to 10
- ISO 8859-13 to 16
- Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml
- JIS X 0201
- JIS X 0208
- KOI8-R
- KOI8-U
- MuleLao-1
- ROMAN8
- Shift-JIS
- TIS-620
- TSCII
- UTF-8
- UTF-16
- UTF-16BE
- UTF-16LE
- UTF-32
- UTF-32BE
- UTF-32LE
- Windows-1250 to 1258
- WINSAMI2
QTextCodecs常被用来将本地的编码转换为Unicode.假设你有些Russian KOI8-R编码的字串,希望转换为Unicode. 最简单的方法如下:
QByteArray encodedString = "..."; QTextCodec *codec = QTextCodec::codecForName("KOI8-R"); QString string = codec->toUnicode(encodedString);
执行完后, string 保存了转换为Unicode的文本. 将Unicode字串转换为本地编码同样简单:
QString string = "..."; QTextCodec *codec = QTextCodec::codecForName("KOI8-R"); QByteArray encodedString = codec->fromUnicode(string);
陆续读或写各种编码, 使用 QTextStream 和它的 setCodec() 函数. 查看QTextCodec向文件I/O读写的范例Codecs.
当试图转换块数据时应当注意,例如,从网络获取的数据.这种情况,可能将多字节字符分成几块. 将会导致丢失字符甚至全部转换失败.
在类似这种情况下使用QTextDecoder 对象来编码和使用 QTextDecoder 来完成整个译码过程, 如下:
QTextCodec *codec = QTextCodec::codecForName("Shift-JIS"); QTextDecoder *decoder = codec->makeDecoder(); QString string; while (new_data_available()) { QByteArray chunk = get_new_data(); string += decoder->toUnicode(chunk); }
The QTextDecoder对象保存了块与块之间的状态所以即使多个字节的字符被分成多块也能正常工作.
创建你自己的编码类
创建QTextCodec子类可以为Qt添加新的文字编码支持.
The pure virtual functions describe the encoder to the system and the coder is used as required in the different text file formats supported by QTextStream, and under X11, for the locale-specific character input and output.
向Qt添加新的编码支持,需要创建QTextCodec子类,并实现下表的函数.
你将发现为你的编码创建一个插件更方便; 查看 How to Create Qt Plugins 获取详细信息.
See also QTextStream, QTextDecoder, QTextEncoder, and Codecs Example.
Member Type Documentation
enum QTextCodec::ConversionFlag
flags QTextCodec::ConversionFlags
The ConversionFlags type is a typedef for QFlags<ConversionFlag>. It stores an OR combination of ConversionFlag values.
Member Function Documentation
QTextCodec::QTextCodec () [protected]
构造一个QTextCodec, 并且赋予最高的优先级. QTextCodec 应在堆上构造 (i.e. 使用 new关键字). Qt 获取所有权并在应用程序结束时删除.
Warning: 此函数不可 重载 .
QTextCodec::~QTextCodec () [virtual protected]
析构QTextCodec. 注意你不应该自己删除codecs:一旦创建便由Qt负责.
Warning: 此函数不可 重载 .
QList<QByteArray> QTextCodec::aliases () const [virtual]
子类返回别名序列
编码标准别名可以查看 IANA character-sets encoding file.
QList<QByteArray> QTextCodec::availableCodecs () [static]
返回所有可用的编码, 调用 QTextCodec::codecForName()通过name获得QTextCodec的name.
如果编码有别名,立标将包含许多提及的相同编码.
See also availableMibs(), name(), and aliases().
QList<int> QTextCodec::availableMibs () [static]
为多有可用的编码返回MIBs列表. Call QTextCodec::codecForMib() to obtain the QTextCodec for the MIB.
See also availableCodecs() and mibEnum().
翻译了部分Qt4.5的参考手册,详细地址:http://l.99081.com/jieen/Qt451/index.html
刚开始,慢慢来!坚持
- QTextCodec Class 参考手册
- QTextCodec Class 参考手册
- QTextCodec
- jQuery 参考手册 - 选择器 (.class.class)
- CCDirector Class Reference (CCDirector 类参考手册)
- CCSPrite Class Reference(CCSprite 类参考手册)
- QTextCodec 类
- QT编程中编译的时候出现c_jkdacx0.obj : error LNK2001: 无法解析的外部符号 "class QTextCodec * GlobalCodec" ?
- 参考手册
- Qt 编码问题QTextCodec
- Qt 编码问题QTextCodec
- qt 编码机制 QTextCodec
- Qt 编码问题QTextCodec
- Qt 编码问题QTextCodec
- QObject QFont QAbstractButton QTextCodec
- QT foreach 和 QTextCodec
- QT foreach 和 QTextCodec
- QString QFile QTextStream QTextCodec
- CodeForces 8B - Obsession with Robots
- 用AFNetWorking 进行get请求 jeson 、非jeson 数据
- 软件开发工具 第一二章总结
- 上传和下载HDFS的文件的小代码
- Git使用指南
- QTextCodec Class 参考手册
- 这种处理文章的机制真脑残
- 在cmd下运行java程序报的错误截图(仔细观察就能解决问题)
- 病毒侵袭持续中
- 函数重入
- 老田让我们写博客
- 设计模式系列--抽象工厂模式
- 功能测试理解
- Objective-C 【autorelease基本使用】