DOBON.NET

サポートしているEncodingをすべて取得する

テキストファイルに文字列を書き込む時や、テキストファイルから文字列を読み込む時には、テキストファイルの文字コードに合ったEncodingオブジェクトが必要です(詳しくは、「目的の文字コードに合ったEncodingオブジェクトを取得する」)。しかし現在の環境が目的のEncodingをサポートしているとは限りません。

サポートしているEncodingをすべて取得するには、Encoding.GetEncodingsメソッドを使用します。このメソッドは、EncodingInfoの配列を返します。

EncodingInfoからEncodingオブジェクトを取得するには、EncodingInfo.GetEncodingメソッドを使うと便利です。(または、EncodingInfo.CodePageプロパティで得られるコードページIDを使ってEncoding.GetEncodingメソッドを呼び出しても同じことができます。)

以下の例では、Encoding.GetEncodingsメソッドの結果をタブ区切りテキストファイルに書き込んでいます。

VB.NET
コードを隠すコードを選択
'結果をテキストファイルに書き込む
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()
C#
コードを隠すコードを選択
//結果をテキストファイルに書き込む
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で実行した時の結果は、以下のようになりました。

DisplayNameCodePageName
IBM EBCDIC (US - カナダ)37IBM037
OEM アメリカ合衆国437IBM437
IBM EBCDIC (インターナショナル)500IBM500
アラビア語 (ASMO 708)708ASMO-708
アラビア語 (DOS)720DOS-720
ギリシャ語 (DOS)737ibm737
バルト言語 (DOS)775ibm775
西ヨーロッパ言語 (DOS)850ibm850
中央ヨーロッパ言語 (DOS)852ibm852
OEM キリル855IBM855
トルコ語 (DOS)857ibm857
OEM マルチリンガル ラテン I858IBM00858
ポルトガル語 (DOS)860IBM860
アイスランド語 (DOS)861ibm861
ヘブライ語 (DOS)862DOS-862
フランス語 (カナダ) (DOS)863IBM863
アラビア語 (864)864IBM864
北欧 (DOS)865IBM865
キリル言語 (DOS)866cp866
ギリシャ語, Modern (DOS)869ibm869
IBM EBCDIC (多国語ラテン 2)870IBM870
タイ語 (Windows)874windows-874
IBM EBCDIC (ギリシャ語 Modern)875cp875
日本語 (シフト JIS)932shift_jis
簡体字中国語 (GB2312)936gb2312
韓国語949ks_c_5601-1987
繁体字中国語 (Big5)950big5
IBM EBCDIC (トルコ語ラテン 5)1026IBM1026
IBM ラテン-11047IBM01047
IBM EBCDIC (US - カナダ - ヨーロッパ)1140IBM01140
IBM EBCDIC (ドイツ - ヨーロッパ)1141IBM01141
IBM EBCDIC (デンマーク - ノルウェー - ヨーロッパ)1142IBM01142
IBM EBCDIC (フィンランド - スウェーデン - ヨーロッパ)1143IBM01143
IBM EBCDIC (イタリア - ヨーロッパ)1144IBM01144
IBM EBCDIC (スペイン - ヨーロッパ)1145IBM01145
IBM EBCDIC (UK - ヨーロッパ)1146IBM01146
IBM EBCDIC (フランス - ヨーロッパ)1147IBM01147
IBM EBCDIC (インターナショナル - ヨーロッパ)1148IBM01148
IBM EBCDIC (アイスランド語 - ヨーロッパ)1149IBM01149
Unicode1200utf-16
Unicode (Big-Endian)1201utf-16BE
中央ヨーロッパ言語 (Windows)1250windows-1250
キリル言語 (Windows)1251windows-1251
西ヨーロッパ言語 (Windows)1252Windows-1252
ギリシャ語 (Windows)1253windows-1253
トルコ語 (Windows)1254windows-1254
ヘブライ語 (Windows)1255windows-1255
アラビア語 (Windows)1256windows-1256
バルト言語 (Windows)1257windows-1257
ベトナム語 (Windows)1258windows-1258
韓国語 (Johab)1361Johab
西ヨーロッパ言語 (Mac)10000macintosh
日本語 (Mac)10001x-mac-japanese
繁体字中国語 (Mac)10002x-mac-chinesetrad
韓国語 (Mac)10003x-mac-korean
アラビア語 (Mac)10004x-mac-arabic
ヘブライ語 (Mac)10005x-mac-hebrew
ギリシャ語 (Mac)10006x-mac-greek
キリル言語 (Mac)10007x-mac-cyrillic
簡体字中国語 (Mac)10008x-mac-chinesesimp
ルーマニア語 (Mac)10010x-mac-romanian
ウクライナ語 (Mac)10017x-mac-ukrainian
タイ語 (Mac)10021x-mac-thai
中央ヨーロッパ言語 (Mac)10029x-mac-ce
アイスランド語 (Mac)10079x-mac-icelandic
トルコ語 (Mac)10081x-mac-turkish
クロアチア語 (Mac)10082x-mac-croatian
Unicode (UTF-32)12000utf-32
Unicode (UTF-32 ビッグ エンディアン)12001utf-32BE
繁体字中国語 (CNS)20000x-Chinese-CNS
TCA 台湾20001x-cp20001
繁体字中国語 (Eten)20002x-Chinese-Eten
IBM5550 台湾20003x-cp20003
TeleText 台湾20004x-cp20004
Wang 台湾20005x-cp20005
西ヨーロッパ言語 (IA5)20105x-IA5
ドイツ語 (IA5)20106x-IA5-German
スウェーデン語 (IA5)20107x-IA5-Swedish
ノルウェー語 (IA5)20108x-IA5-Norwegian
US-ASCII20127us-ascii
T.6120261x-cp20261
ISO-693720269x-cp20269
IBM EBCDIC (ドイツ)20273IBM273
IBM EBCDIC (デンマーク - ノルウェー)20277IBM277
IBM EBCDIC (フィンランド - スウェーデン)20278IBM278
IBM EBCDIC (イタリア)20280IBM280
IBM EBCDIC (スペイン)20284IBM284
IBM EBCDIC (UK)20285IBM285
IBM EBCDIC (日本語カタカナ)20290IBM290
IBM EBCDIC (フランス)20297IBM297
IBM EBCDIC (アラビア語)20420IBM420
IBM EBCDIC (ギリシャ語)20423IBM423
IBM EBCDIC (ヘブライ語)20424IBM424
IBM EBCDIC (韓国語 Extended)20833x-EBCDIC-KoreanExtended
IBM EBCDIC (タイ語)20838IBM-Thai
キリル言語 (KOI8-R)20866koi8-r
IBM EBCDIC (アイスランド語)20871IBM871
IBM EBCDIC (キリル言語 - ロシア語)20880IBM880
IBM EBCDIC (トルコ語)20905IBM905
IBM ラテン-120924IBM00924
日本語 (JIS 0208-1990 および 0212-1990)20932EUC-JP
簡体字中国語 (GB2312-80)20936x-cp20936
韓国語 Wansung20949x-cp20949
IBM EBCDIC (キリル言語 セルビア - ブルガリア)21025cp1025
キリル言語 (KOI8-U)21866koi8-u
西ヨーロッパ言語 (ISO)28591iso-8859-1
中央ヨーロッパ言語 (ISO)28592iso-8859-2
ラテン 3 (ISO)28593iso-8859-3
バルト言語 (ISO)28594iso-8859-4
キリル言語 (ISO)28595iso-8859-5
アラビア語 (ISO)28596iso-8859-6
ギリシャ語 (ISO)28597iso-8859-7
ヘブライ語 (ISO-Visual)28598iso-8859-8
トルコ語 (ISO)28599iso-8859-9
エストニア語 (ISO)28603iso-8859-13
ラテン 9 (ISO)28605iso-8859-15
ヨーロッパ29001x-Europa
ヘブライ語 (ISO-Logical)38598iso-8859-8-i
日本語 (JIS)50220iso-2022-jp
日本語 (JIS 1 バイト カタカナ可)50221csISO2022JP
日本語 (JIS 1 バイト カタカナ可 - SO/SI)50222iso-2022-jp
韓国語 (ISO)50225iso-2022-kr
簡体字中国語 (ISO-2022)50227x-cp50227
日本語 (EUC)51932euc-jp
簡体字中国語 (EUC)51936EUC-CN
韓国語 (EUC)51949euc-kr
簡体字中国語 (HZ)52936hz-gb-2312
簡体字中国語 (GB18030)54936GB18030
ISCII デバナガリ文字57002x-iscii-de
ISCII ベンガル語57003x-iscii-be
ISCII タミール語57004x-iscii-ta
ISCII テルグ語57005x-iscii-te
ISCII アッサム語57006x-iscii-as
ISCII オリヤー語57007x-iscii-or
ISCII カナラ語57008x-iscii-ka
ISCII マラヤラム語57009x-iscii-ma
ISCII グジャラート語57010x-iscii-gu
ISCII パンジャブ語57011x-iscii-pa
Unicode (UTF-7)65000utf-7
Unicode (UTF-8)65001utf-8

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • このサイトで紹介されているコードの多くは、例外処理が省略されています。例外処理については、こちらをご覧ください。
  • Windows Vista以降でUACが有効になっていると、ファイルへの書き込みに失敗する可能性があります。詳しくは、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。
共有する

この記事への評価

この記事へのコメント

この記事に関するコメントを投稿するには、下のボタンをクリックしてください。投稿フォームへ移動します。通常のご質問、ご意見等は掲示板へご投稿ください。