テキストファイルに文字列を書き込む時や、テキストファイルから文字列を読み込む時には、テキストファイルの文字コードに合ったEncodingオブジェクトが必要です(詳しくは、「目的の文字コードに合ったEncodingオブジェクトを取得する」)。しかし現在の環境が目的のEncodingをサポートしているとは限りません。
サポートしているEncodingをすべて取得するには、Encoding.GetEncodingsメソッドを使用します。このメソッドは、EncodingInfoの配列を返します。
EncodingInfoからEncodingオブジェクトを取得するには、EncodingInfo.GetEncodingメソッドを使うと便利です。(または、EncodingInfo.CodePageプロパティで得られるコードページIDを使ってEncoding.GetEncodingメソッドを呼び出しても同じことができます。)
以下の例では、Encoding.GetEncodingsメソッドの結果をタブ区切りテキストファイルに書き込んでいます。
'結果をテキストファイルに書き込む Dim sw As New System.IO.StreamWriter("C:\test\encs.txt") sw.WriteLine("DisplayName" & vbTab & "CodePage" & vbTab & "Name") 'サポートしているすべてのエンコーディングを取得する Dim eis As System.Text.EncodingInfo() = System.Text.Encoding.GetEncodings() 'エンコーディングの情報をファイルに書き込む For Each ei As System.Text.EncodingInfo In eis sw.WriteLine("{0}" & vbTab & "{1}" & vbTab & "{2}", _ ei.DisplayName, ei.CodePage, ei.Name) Next 'ファイルを閉じる sw.Close()
//結果をテキストファイルに書き込む System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\test\encs.txt"); sw.WriteLine("DisplayName\tCodePage\tName"); //サポートしているすべてのエンコーディングを取得する System.Text.EncodingInfo[] eis = System.Text.Encoding.GetEncodings(); //エンコーディングの情報をファイルに書き込む foreach(System.Text.EncodingInfo ei in eis) { sw.WriteLine("{0}\t{1}\t{2}", ei.DisplayName, ei.CodePage, ei.Name); } //ファイルを閉じる sw.Close();
このコードを.NET Frameork 4.5、Windows 8.1で実行した時の結果は、以下のようになりました。
DisplayName | CodePage | Name |
---|---|---|
IBM EBCDIC (US - カナダ) | 37 | IBM037 |
OEM アメリカ合衆国 | 437 | IBM437 |
IBM EBCDIC (インターナショナル) | 500 | IBM500 |
アラビア語 (ASMO 708) | 708 | ASMO-708 |
アラビア語 (DOS) | 720 | DOS-720 |
ギリシャ語 (DOS) | 737 | ibm737 |
バルト言語 (DOS) | 775 | ibm775 |
西ヨーロッパ言語 (DOS) | 850 | ibm850 |
中央ヨーロッパ言語 (DOS) | 852 | ibm852 |
OEM キリル | 855 | IBM855 |
トルコ語 (DOS) | 857 | ibm857 |
OEM マルチリンガル ラテン I | 858 | IBM00858 |
ポルトガル語 (DOS) | 860 | IBM860 |
アイスランド語 (DOS) | 861 | ibm861 |
ヘブライ語 (DOS) | 862 | DOS-862 |
フランス語 (カナダ) (DOS) | 863 | IBM863 |
アラビア語 (864) | 864 | IBM864 |
北欧 (DOS) | 865 | IBM865 |
キリル言語 (DOS) | 866 | cp866 |
ギリシャ語, Modern (DOS) | 869 | ibm869 |
IBM EBCDIC (多国語ラテン 2) | 870 | IBM870 |
タイ語 (Windows) | 874 | windows-874 |
IBM EBCDIC (ギリシャ語 Modern) | 875 | cp875 |
日本語 (シフト JIS) | 932 | shift_jis |
簡体字中国語 (GB2312) | 936 | gb2312 |
韓国語 | 949 | ks_c_5601-1987 |
繁体字中国語 (Big5) | 950 | big5 |
IBM EBCDIC (トルコ語ラテン 5) | 1026 | IBM1026 |
IBM ラテン-1 | 1047 | IBM01047 |
IBM EBCDIC (US - カナダ - ヨーロッパ) | 1140 | IBM01140 |
IBM EBCDIC (ドイツ - ヨーロッパ) | 1141 | IBM01141 |
IBM EBCDIC (デンマーク - ノルウェー - ヨーロッパ) | 1142 | IBM01142 |
IBM EBCDIC (フィンランド - スウェーデン - ヨーロッパ) | 1143 | IBM01143 |
IBM EBCDIC (イタリア - ヨーロッパ) | 1144 | IBM01144 |
IBM EBCDIC (スペイン - ヨーロッパ) | 1145 | IBM01145 |
IBM EBCDIC (UK - ヨーロッパ) | 1146 | IBM01146 |
IBM EBCDIC (フランス - ヨーロッパ) | 1147 | IBM01147 |
IBM EBCDIC (インターナショナル - ヨーロッパ) | 1148 | IBM01148 |
IBM EBCDIC (アイスランド語 - ヨーロッパ) | 1149 | IBM01149 |
Unicode | 1200 | utf-16 |
Unicode (Big-Endian) | 1201 | utf-16BE |
中央ヨーロッパ言語 (Windows) | 1250 | windows-1250 |
キリル言語 (Windows) | 1251 | windows-1251 |
西ヨーロッパ言語 (Windows) | 1252 | Windows-1252 |
ギリシャ語 (Windows) | 1253 | windows-1253 |
トルコ語 (Windows) | 1254 | windows-1254 |
ヘブライ語 (Windows) | 1255 | windows-1255 |
アラビア語 (Windows) | 1256 | windows-1256 |
バルト言語 (Windows) | 1257 | windows-1257 |
ベトナム語 (Windows) | 1258 | windows-1258 |
韓国語 (Johab) | 1361 | Johab |
西ヨーロッパ言語 (Mac) | 10000 | macintosh |
日本語 (Mac) | 10001 | x-mac-japanese |
繁体字中国語 (Mac) | 10002 | x-mac-chinesetrad |
韓国語 (Mac) | 10003 | x-mac-korean |
アラビア語 (Mac) | 10004 | x-mac-arabic |
ヘブライ語 (Mac) | 10005 | x-mac-hebrew |
ギリシャ語 (Mac) | 10006 | x-mac-greek |
キリル言語 (Mac) | 10007 | x-mac-cyrillic |
簡体字中国語 (Mac) | 10008 | x-mac-chinesesimp |
ルーマニア語 (Mac) | 10010 | x-mac-romanian |
ウクライナ語 (Mac) | 10017 | x-mac-ukrainian |
タイ語 (Mac) | 10021 | x-mac-thai |
中央ヨーロッパ言語 (Mac) | 10029 | x-mac-ce |
アイスランド語 (Mac) | 10079 | x-mac-icelandic |
トルコ語 (Mac) | 10081 | x-mac-turkish |
クロアチア語 (Mac) | 10082 | x-mac-croatian |
Unicode (UTF-32) | 12000 | utf-32 |
Unicode (UTF-32 ビッグ エンディアン) | 12001 | utf-32BE |
繁体字中国語 (CNS) | 20000 | x-Chinese-CNS |
TCA 台湾 | 20001 | x-cp20001 |
繁体字中国語 (Eten) | 20002 | x-Chinese-Eten |
IBM5550 台湾 | 20003 | x-cp20003 |
TeleText 台湾 | 20004 | x-cp20004 |
Wang 台湾 | 20005 | x-cp20005 |
西ヨーロッパ言語 (IA5) | 20105 | x-IA5 |
ドイツ語 (IA5) | 20106 | x-IA5-German |
スウェーデン語 (IA5) | 20107 | x-IA5-Swedish |
ノルウェー語 (IA5) | 20108 | x-IA5-Norwegian |
US-ASCII | 20127 | us-ascii |
T.61 | 20261 | x-cp20261 |
ISO-6937 | 20269 | x-cp20269 |
IBM EBCDIC (ドイツ) | 20273 | IBM273 |
IBM EBCDIC (デンマーク - ノルウェー) | 20277 | IBM277 |
IBM EBCDIC (フィンランド - スウェーデン) | 20278 | IBM278 |
IBM EBCDIC (イタリア) | 20280 | IBM280 |
IBM EBCDIC (スペイン) | 20284 | IBM284 |
IBM EBCDIC (UK) | 20285 | IBM285 |
IBM EBCDIC (日本語カタカナ) | 20290 | IBM290 |
IBM EBCDIC (フランス) | 20297 | IBM297 |
IBM EBCDIC (アラビア語) | 20420 | IBM420 |
IBM EBCDIC (ギリシャ語) | 20423 | IBM423 |
IBM EBCDIC (ヘブライ語) | 20424 | IBM424 |
IBM EBCDIC (韓国語 Extended) | 20833 | x-EBCDIC-KoreanExtended |
IBM EBCDIC (タイ語) | 20838 | IBM-Thai |
キリル言語 (KOI8-R) | 20866 | koi8-r |
IBM EBCDIC (アイスランド語) | 20871 | IBM871 |
IBM EBCDIC (キリル言語 - ロシア語) | 20880 | IBM880 |
IBM EBCDIC (トルコ語) | 20905 | IBM905 |
IBM ラテン-1 | 20924 | IBM00924 |
日本語 (JIS 0208-1990 および 0212-1990) | 20932 | EUC-JP |
簡体字中国語 (GB2312-80) | 20936 | x-cp20936 |
韓国語 Wansung | 20949 | x-cp20949 |
IBM EBCDIC (キリル言語 セルビア - ブルガリア) | 21025 | cp1025 |
キリル言語 (KOI8-U) | 21866 | koi8-u |
西ヨーロッパ言語 (ISO) | 28591 | iso-8859-1 |
中央ヨーロッパ言語 (ISO) | 28592 | iso-8859-2 |
ラテン 3 (ISO) | 28593 | iso-8859-3 |
バルト言語 (ISO) | 28594 | iso-8859-4 |
キリル言語 (ISO) | 28595 | iso-8859-5 |
アラビア語 (ISO) | 28596 | iso-8859-6 |
ギリシャ語 (ISO) | 28597 | iso-8859-7 |
ヘブライ語 (ISO-Visual) | 28598 | iso-8859-8 |
トルコ語 (ISO) | 28599 | iso-8859-9 |
エストニア語 (ISO) | 28603 | iso-8859-13 |
ラテン 9 (ISO) | 28605 | iso-8859-15 |
ヨーロッパ | 29001 | x-Europa |
ヘブライ語 (ISO-Logical) | 38598 | iso-8859-8-i |
日本語 (JIS) | 50220 | iso-2022-jp |
日本語 (JIS 1 バイト カタカナ可) | 50221 | csISO2022JP |
日本語 (JIS 1 バイト カタカナ可 - SO/SI) | 50222 | iso-2022-jp |
韓国語 (ISO) | 50225 | iso-2022-kr |
簡体字中国語 (ISO-2022) | 50227 | x-cp50227 |
日本語 (EUC) | 51932 | euc-jp |
簡体字中国語 (EUC) | 51936 | EUC-CN |
韓国語 (EUC) | 51949 | euc-kr |
簡体字中国語 (HZ) | 52936 | hz-gb-2312 |
簡体字中国語 (GB18030) | 54936 | GB18030 |
ISCII デバナガリ文字 | 57002 | x-iscii-de |
ISCII ベンガル語 | 57003 | x-iscii-be |
ISCII タミール語 | 57004 | x-iscii-ta |
ISCII テルグ語 | 57005 | x-iscii-te |
ISCII アッサム語 | 57006 | x-iscii-as |
ISCII オリヤー語 | 57007 | x-iscii-or |
ISCII カナラ語 | 57008 | x-iscii-ka |
ISCII マラヤラム語 | 57009 | x-iscii-ma |
ISCII グジャラート語 | 57010 | x-iscii-gu |
ISCII パンジャブ語 | 57011 | x-iscii-pa |
Unicode (UTF-7) | 65000 | utf-7 |
Unicode (UTF-8) | 65001 | utf-8 |