C++ Builder 參考手冊 ? System::Sysutils ? TEncoding ? MIMEName
頭文件:#include <System.SysUtils.hpp>
命名空間:System::Sysutils
類:TEncoding
訪問權(quán)限:public:
屬性定義:
__property System::UnicodeString MIMEName = {read=GetMIMEName};
MIMEName 是 System::Sysutils::TEncoding 的屬性,代碼頁的名稱。
- 兼容性:
C++ Builder 11.0 的 TEncoding 類有這個屬性,但是沒有 GetEncodingMIMEName 函數(shù);
C++ Builder 10.2 的 TEncoding 類沒有這個屬性,但是有 GetEncodingMIMEName 函數(shù);
其他版本沒有測試; - 根據(jù)源碼分析,Windows 版本支持的代碼頁從源碼里面提取出來轉(zhuǎn)成以下表格,其他平臺也是查表得到的,支持的代碼頁在源碼的 source\rtl\sys\CPConv.inc 文件里面,通過 GetIcuName(CodePage, Result, TICUConvNameKind.Mime) 獲取的。
以下表格是 TEncoding::MIMEName 在 Windows 平臺里面支持的代碼頁 (從源碼里面提取出來的,順序和名稱都和源碼里面完全相同,備注是本文加上的),其中有多個名稱的,MIMEName 屬性和 GetEncodingMIMEName 函數(shù)得到的是代碼頁當(dāng)中第一個 MIME名稱:
| 代碼頁 | MIME名稱 | 備注 |
|---|---|---|
| 20127 | us-ascii ascii csascii |
US-ASCII, 美國 7位 ASCII |
| 65000 | utf-7 csunicode11utf7 |
UTF-7 |
| 65001 | utf-8 utf8 |
UTF-8 |
| 28591 | iso-8859-1 cp819 ibm819 iso-ir-100 iso8859-1 iso_8859-1 iso_8859-1:1987 csisolatin1 |
拉丁語 1, 西歐 (ISO) |
| 28592 | iso-8859-2 iso-ir-101 iso8859-2 iso_8859-2 iso_8859-2:1987 csisolatin2 |
拉丁語 2, 中歐 (ISO) |
| 28593 | iso-8859-3 iso-ir-109 iso8859-3 iso_8859-3 iso_8859-3:1988 csisolatin3 |
拉丁語 3, 南歐 (ISO) |
| 28594 | iso-8859-4 iso-ir-110 iso8859-4 iso_8859-4 iso_8859-4:1988 csisolatin4 |
拉丁語 4, 北歐 (ISO) |
| 28595 | iso-8859-5 cyrillic iso-ir-144 iso8859-5 iso_8859-5 iso_8859-5:1988 csisolatincyrillic |
Cyrillic, 斯拉夫 (ISO) |
| 28596 | iso-8859-6 arabic asmo-708 ecma-114 iso-ir-127 iso8859-6 iso_8859-6 iso_8859-6:1987 csisolatinarabic |
Arabic, 阿拉伯 (ISO) |
| 28597 | iso-8859-7 greek greek8 iso8859-7 iso_8859-7 iso_8859-7:1987 iso_8859-7:2003 |
Greek, 希臘 (ISO) |
| 28598 | iso-8859-8 hebrew iso-ir-138 iso8859-8 iso_8859-8 iso_8859-8:1988 csisolatinhebrew |
Hebrew, 希伯來 (視覺順序) (ISO) |
| 28599 | iso-8859-9 iso-ir-148 iso8859-9 iso_8859-9 iso_8859-9:1989 csisolatin5 |
拉丁 5 / Turkish, 土耳其 (ISO) |
| 28600 | iso-8859-10 iso-ir-157 iso8859-10 iso_8859-10 iso_8859-10:1992 csisolatin6 |
拉丁 6 / Nordic, 北日耳曼 (ISO) |
| 28601 | iso-8859-11 iso8859-11 iso_8859-11 |
Thai, 泰國 (ISO) |
| 28603 | iso-8859-13 iso-ir-179 iso8859-13 iso_8859-13 |
拉丁 7 / Baltic, 波羅的 (ISO) |
| 28604 | iso-8859-14 iso-celtic iso-ir-199 iso8859-14 iso_8859-14 iso_8859-14:1998 |
拉丁 8 / Celtic, 凱爾特 (ISO) |
| 28605 | iso-8859-15 iso-ir-203 iso8859-15 iso_8859-15 iso_8859-15:1998 |
拉丁 9, 西歐 (芬蘭/法國) (ISO) |
| 28606 | iso-8859-16 iso-ir-226 iso8859-16 iso_8859-16 iso_8859-16:2001 |
拉丁 10, 東南歐 (羅馬尼亞) (ISO) |
| 932 | shift_jis cp932 shift-jis sjis csshiftjis |
Shift-JIS, 日語 (Japanese) |
| 936 | gbk cp936 windows-936 gb2312 csgb2312 |
GBK (國標(biāo)擴(kuò)展碼/國標(biāo)碼), 中國大陸 (Chinese Main Land),新加坡 (Singapore) |
| 949 | ks_c_5601-1987 cp949 iso-ir-149 korean ksc_5601 ks_c_5601-1989 csksc56011987 |
韓國語 (Korean) |
| 950 | big5 cp950 big-5 big-five bigfive cn-big5 csbig5 |
BIG5 (大五碼), 中國臺灣 (Chinese Taiwan), 中國香港 (Chinese Hongkong) |
| 1200 | ucs-2 csunicode utf-16 utf-16le |
UTF-16 |
| 1201 | utf-16be | UTF-16BE (UTF-16 Big Endian) |
| 1250 | windows-1250 cp1250 |
東歐 (Eastern Europe) |
| 1251 | windows-1251 cp1251 |
西里爾 Windows 系統(tǒng) (Cyrillic Windows),俄語 Windows 系統(tǒng) |
| 1252 | windows-1252 cp1252 |
西方語言-拉丁語1 (Western Latin 1), 美國 Windows 用的是 1252,美國 DOS 用的是 437 (ASCII) |
| 1253 | windows-1253 cp1253 |
希臘語 (Greek) |
| 1254 | windows-1254 cp1254 |
土耳其語 (Turkish) |
| 1255 | windows-1255 cp1255 |
希伯來語 (Hebrew),以色列 |
| 1256 | windows-1256 cp1256 |
阿拉伯語 (Arabic) |
| 1257 | windows-1257 cp1257 |
波羅的海 (Baltic),立陶宛、拉脫維亞、愛沙尼亞等 |
| 1258 | windows-1258 cp1258 |
越南語 (Vietnamese) |
| 20866 | koi8-r | 西里爾/斯拉夫8位編碼,Cyrillic KOI8-R,俄語、保加利亞語等 |
| 20936 | gb_2312-80 chinese iso-ir-58 csiso58gb231280 |
簡體中文 GB2312,早期漢字編碼,現(xiàn)在使用 936 代碼頁 |
| 21866 | koi8-u | 西里爾文 (Cyrillic) (KOI8-U) |
| 50220 | iso-2022-jp csiso2022jp |
日語 (無片假名) (JIS) |
| 50225 | iso-2022-kr csiso2022kr |
韓語 (ISO) |
| 50227 | iso-2022-cn | 簡體中文 (ISO-2022) |
| 51932 | euc-jp eucjp cseucpkdfmtjapanese |
日語 (EUC) |
| 51936 | euc-cn euccn |
簡體中文 (EUC) |
| 51949 | euc-kr euckr |
韓語 (EUC) |
| 51950 | euc-tw euctw cseuctw |
繁體中文 (EUC) |
| 52936 | hz-gb-2312 | 簡體中文 (HZ-GB2312) |
| 54936 | gb18030 | 簡體中文 GB18030, 在 GBK 雙字節(jié)編碼的基礎(chǔ)上,增加了 4 個字節(jié)的漢字編碼, 總共收錄了 70,244 個漢字,沒有被廣泛采用, 現(xiàn)在用 UNICODE 代替,收錄了更多的漢字和更好的兼容性 |
| 437 | ibm437 437 cp437 cspc8codepage437 |
ASCII (美國信息交換標(biāo)準(zhǔn)代碼), 美國 |
| 737 | cp737 | 希臘語 (DOS) |
| 775 | ibm775 cp775 cspc775baltic |
Baltic (DOS) |
| 850 | ibm850 850 cp850 cspc850multilingual |
DOS 拉丁語 1, 西歐 (DOS) |
| 852 | ibm852 852 cp852 cspcp852 |
DOS 拉丁語 2, 中歐 (DOS) |
| 853 | cp853 | 853 |
| 855 | ibm855 855 cp855 csibm855 |
OEM 西里爾文 (主要為俄語) |
| 857 | ibm857 857 cp857 csibm857 |
土耳其 (DOS) |
| 858 | cp858 | OEM 多語言拉丁語 1 + 歐洲符號 |
| 860 | ibm860 860 cp860 csibm860 |
葡萄牙語 (DOS) |
| 861 | ibm861 861 cp-is cp861 csibm861 |
Icelandic (DOS) |
| 862 | ibm862 862 cp862 cspc862latinhebrew |
希伯來 (DOS) |
| 863 | ibm863 863 cp863 csibm863 |
加拿大法語 (DOS) |
| 864 | ibm864 cp864 csibm864 |
阿拉伯語 (864) |
| 865 | ibm865 865 cp865 csibm865 |
Nordic (DOS) |
| 866 | ibm866 866 cp866 csibm866 |
西里爾文 (俄語) (DOS) |
| 869 | ibm869 869 cp-gr cp869 csibm869 |
現(xiàn)代希臘語 (DOS) |
| 874 | windows-874 cp874 iso-ir-166 tis-620 tis620 tis620-0 tis620.2529-1 tis620.2533-0 tis620.2533-1 |
泰國語 (Thai) (Windows) |
| 1361 | cp1361 johab |
韓語 (Johab) |
| 10000 | mac macintosh macroman |
西歐 (Mac) |
| 10004 | macarabic | 阿拉伯 (Mac) |
| 10005 | machebrew | 希伯來 (Mac) |
| 10006 | macgreek | 希臘 (Mac) |
| 10007 | maccyrillic | 西里爾 (Mac) |
| 10010 | macromania | 羅馬尼亞 (Mac) |
| 10017 | macukraine | 烏克蘭 (Mac) |
| 10021 | macthai | 泰語 (Mac) |
| 10029 | maccentraleurope | 中歐 (Mac) |
| 10079 | maciceland | 冰島 (Mac) |
| 10081 | macturkish | 土耳其 (Mac) |
| 10082 | maccroatian | 克羅地亞 (Mac) |
例子:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Lines->Add(TEncoding::UTF8->MIMEName);
Memo1->Lines->Add(TEncoding::Unicode->MIMEName);
Memo1->Lines->Add(TEncoding::ANSI->MIMEName);
Memo1->Lines->Add(TEncoding::Default->MIMEName);
Memo1->Lines->Add(TEncoding::ASCII->MIMEName);
TMBCSEncoding *cp936 = new TMBCSEncoding(936);
Memo1->Lines->Add(cp936->MIMEName);
delete cp936;
TMBCSEncoding *cp950 = new TMBCSEncoding(950);
Memo1->Lines->Add(cp950->MIMEName);
delete cp950;
}
運(yùn)行結(jié)果:

運(yùn)行結(jié)果
其中 ANSI 和 Default 編碼是在操作系統(tǒng)的控制面板里面設(shè)置的,例如:
設(shè)置默認(rèn)編碼為 GBK:

設(shè)置默認(rèn)編碼為 GBK
設(shè)置默認(rèn)編碼為 UTF-8:

設(shè)置默認(rèn)編碼為 UTF-8
相關(guān):
- C++ Builder 的字符串類型、字符類型、字符編碼
- System::Sysutils::GetEncodingMIMEName
- System::Sysutils::TEncoding::EncodingName
- System::Sysutils::TEncoding::MIMEName
- System::Sysutils::TEncoding::CodePage
- System::Sysutils::TEncoding
- System::Sysutils::Languages
- System::Sysutils::LCIDToCodePage
- System::Sysutils::PreferredUILanguageList
- System::Sysutils::PreferredUILanguages
- System::Sysutils::LoadStr
- System::Sysutils::FmtLoadStr
- System::Sysutils
- System::UnicodeString::CodePage
- System::AnsiStringT::CodePage
- System::AnsiStringBase::CodePage
- System
C++ Builder 參考手冊 ? System::Sysutils ? TEncoding ? MIMEName