C++ Builder 参考手册 ➙ System::Sysutils ➙ TEncoding
所有字符编码类的父类,可以通过这个类的静态属性直接访问几个常用的编码
- 简介
- 成员
• 属性
• 方法 - 例子
一. System::Sysutils::TEncoding 简介
- 继承关系:
System::TObject
⠀╙ System::Sysutils::TEncoding - 头文件:
#include <System.SysUtils.hpp>
- 命名空间:
System::Sysutils
- System::Sysutils::TEncoding 是所有字符编码类的父类,可以通过这个类的静态属性直接访问几个常用的编码
二. System::Sysutils::TEncoding 成员
1. System::Sysutils::TEncoding 属性
属性 | 类型 | 说明 |
---|---|---|
public: | ||
ANSI | TEncoding * | ANSI 编码,静态属性 |
ASCII | TEncoding * | ASCII 编码,静态属性 |
BigEndianUnicode | TEncoding * | UTF-16BE (UTF-16 Big Endian) 编码,静态属性 |
CodePage | unsigned | 代码页 |
Default | TEncoding * | 默认编码,静态属性 |
EncodingName | UnicodeString | 编码名称,格式 "代码页 (名称)" 例如 "65001 (UTF-8)" |
MIMEName | UnicodeString | 代码页名称,例如 "utf-8" |
IsSingleByte | bool | 单字节编码,TEncoding 属性几个编码中只有 ASCII 是单字节的 |
Unicode | TEncoding * | UTF-16 编码,静态属性 |
UTF7 | TEncoding * | UTF-7 编码,静态属性 |
UTF8 | TEncoding * | UTF-8 编码,静态属性 |
protected: | ||
FIsSingleByte | bool | 类内部使用的数据成员,这个编码是否单字节编码 |
FMaxCharSize | int | 类内部使用的数据成员,这个编码一个字符最多需要的字节数 |
2. System::Sysutils::TEncoding 方法
方法 | 说明 |
---|---|
public: | |
Convert | 编码转换静态方法,从源编码到目标编码 |
Clone | 返回新创建复制的当前编码对象 |
FreeEncodings | 释放 ANSI, ASCII, BigEndianUnicode, Default, Unicode, UTF7, UTF8 等属性占用的资源,内部调用,应用程序不要直接调用 |
GetBufferEncoding | 判断缓存里面内容的编码 (根据 BOM) |
GetByteCount | 计算编码生成的字节数 |
GetBytes | 由字符数组编码为字节数组 |
GetCharCount | 计算解码生成的字符个数 |
GetChars | 由字节数组解码为字符数组 |
GetEncoding | 由代码页或字符集的名字获取合适的编码,会创建一个 TMBCSEncoding 返回 |
GetMaxByteCount | 由字符个数计算编码可能生成的最多的字节数 |
GetMaxCharCount | 由字节数计算解码可能生成的最多的字符个数 |
GetPreamble | 获取前导码,对于 UNICODE 来说前导码就是 BOM (byte order mark) |
GetString | 字节数组转字符串 |
IsStandardEncoding | 是否标准编码 (ANSI, ASCII, BigEndianUnicode, Unicode, UTF7, UTF8 属性之一) |
TEncoding | 构造函数 |
~TEncoding | 析构函数 |
protected: | |
GetCodePage | 用于 CodePage 属性,获取代码页 |
GetEncodingName | 用于 EncodingName 属性,获取编码名称 |
GetMIMEName | 用于 MIMEName 属性,获取代码页名称 |
TObject:: | 从 System::TObject 继承过来的 |
public: | |
AfterConstruction | 在构造函数结束的时候会自动调用 AfterConstruction |
BeforeDestruction | 在执行析构函数之前会自动调用 BeforeDestruction |
ClassInfo | 返回运行时类型信息表 (RTTI table) |
ClassName | 获取类名,不包含命名空间的类名字符串 |
ClassNameIs | 判断类名是否为参数指定的字符串 |
ClassParent | 返回父类的类型信息 |
ClassType | 返回类的类型信息 |
CleanupInstance | 清除长字符串、Variants、接口变量等 |
DefaultHandler | 默认的消息处理 |
Dispatch | 处理消息的函数 |
DisposeOf | 强制销毁对象 |
Equals | 比较当前对象和 Obj 对象是否相同 |
FieldAddress | 通过成员名称返回成员的地址 |
Free | 销毁对象 (Delphi) |
FreeInstance | 释放 NewInstance 分配的内存 |
GetHashCode | 返回对象的 hash 值 |
GetInterface | 获取指定的接口 |
GetInterfaceEntry | 获取接口项目 |
GetInterfaceTable | 获取接口表 |
InheritsFrom | 当前对象的类是否从 AClass 继承过来的 |
InitInstance | 初始化成员,给他们清零 |
InstanceSize | 返回给实例数据分配内存需要多少字节数 |
MethodAddress | 通过名称返方法的地址 |
MethodName | 通过方法的地址返回名称 |
NewInstance | 给实例分配内存,并且返回新的实例的地址 |
QualifiedClassName | 返回包含命名空间的类名 |
SafeCallException | 处理异常的函数 |
ToString | 转为字符串 |
UnitName | 返回类所在的命名空间 |
UnitScope | 返回类所在的命名空间 |
例1:处理 ini 文件 test.ini,并且指定 ini 文件编码为 UTF-8
TMemIniFile *ini = new TMemIniFile(L"d:\\test.ini", TEncoding::UTF8);
例2:把 ANSI 编码的 ansi.txt 文本文件读出来,保存为 UTF-8 编码的 utf8.txt 文本文件
TStringList *sl = new TStringList;
try
{
sl->LoadFromFile(L"d:\\ansi.txt", TEncoding::ANSI);
sl->SaveToFile(L"d:\\utf8.txt", TEncoding::UTF8);
}
__finally
{
delete sl;
}
相关:
- System::Sysutils::TEncoding
- System::Sysutils::TMBCSEncoding
- System::Sysutils::TUTF7Encoding
- System::Sysutils::TUTF8Encoding
- System::Sysutils::TUnicodeEncoding
- System::Sysutils::TBigEndianUnicodeEncoding
- System::Sysutils::TLanguages
- System::Sysutils::ILanguageEnumerable
- System::Sysutils::ILanguageEnumerator
- System::Sysutils
- System::TObject
- VCL 类继承关系
C++ Builder 参考手册 ➙ System::Sysutils ➙ TEncoding