ファイルの入出力プログラムを作成していると、ファイルの読み書きなどで文字コードを指定したい場合があります。
今回は、C#(.NET Framework)で文字列のエンコードを指定してエンコーディングする方法について紹介します。
目次
文字列のエンコーディング
C#(.NET Framework)で文字列をエンコーディングする際は、System.Text名前空間にあるEncodingクラスを使用します。
Encodingクラスは、文字エンコーディングを表します。
Encodingクラスのプロパティでエンコーディングを指定する
Encodingクラスには、エンコーディングを表すプロパティがいくつか用意されています。
以下に代表的なプロパティの使用例を記載します。
1 2 3 4 5 6 7 8 |
// UTF-8 形式のエンコーディングを取得します。 Encoding utf8 = System.Text.Encoding.UTF8; // ASCII (7 ビット) 文字セットのエンコーディングを取得します。 Encoding ascii = System.Text.Encoding.ASCII; // リトル エンディアン バイト順を使用する UTF-16 形式(Unicode)のエンコーディングを取得します。 Encoding unicode = System.Text.Encoding.Unicode; |
GetEncodingメソッドを使用してエンコーディングを指定する
Encodingクラスには、GetEncodingメソッドが用意されており、指定したコードページのエンコーディングを行うことができます。GetEncodingメソッドの引数にはコードページIDまたはコードページの名前を指定することもできます。
以下にコードページIDを指定した例と、コードページ名を指定した例を記載します。
コードページIDを指定したGetEncodingメソッドの例
1 2 3 4 5 6 7 8 9 10 11 |
// UTF-8 Encoding utf8 = System.Text.Encoding.GetEncoding(65001); // 日本語シフトJIS Encoding sjis = System.Text.Encoding.GetEncoding(932); // EUC Encoding euc = System.Text.Encoding.GetEncoding(20932); // JISコード Encoding jis = System.Text.Encoding.GetEncoding(50220); |
コードページ名を指定したGetEncodingメソッドの例
1 2 3 4 5 6 7 8 9 10 11 |
// UTF-8 Encoding utf8 = System.Text.Encoding.GetEncoding("utf-8"); // 日本語シフトJIS Encoding sjis = System.Text.Encoding.GetEncoding("Shift_JIS"); // EUC Encoding euc = System.Text.Encoding.GetEncoding("EUC-JP"); // JIS Encoding jis = System.Text.Encoding.GetEncoding("iso-2022-jp"); |
コードページ一覧
C#(.NET Framework)で使用できるコードページの一覧を記載しておきます。
コードページ | 名前 | 表示名 | |
---|---|---|---|
37 | IBM037 | IBM EBCDIC (米国-カナダ) | IBM EBCDIC (US-Canada) |
437 | IBM437 | OEM 米国 | OEM United States |
500 | IBM500 | IBM EBCDIC (インターナショナル) | IBM EBCDIC (International) |
708 | ASMO-708 | アラビア語 (ASMO 708) | Arabic (ASMO 708) |
720 | DOS-720 | アラビア語 (DOS) | Arabic (DOS) |
737 | ibm737 | ギリシャ語 (DOS) | Greek (DOS) |
775 | ibm775 | バルト語 (DOS) | Baltic (DOS) |
850 | ibm850 | 西ヨーロッパ言語 (DOS) | Western European (DOS) |
852 | ibm852 | 中央ヨーロッパ言語 (DOS) | Central European (DOS) |
855 | IBM855 | OEM キリル文字 | OEM Cyrillic |
857 | ibm857 | トルコ語 (DOS) | Turkish (DOS) |
858 | IBM00858 | OEM 多言語ラテン I | OEM Multilingual Latin I |
860 | IBM860 | ポルトガル語 (DOS) | Portuguese (DOS) |
861 | ibm861 | アイスランド語 (DOS) | Icelandic (DOS) |
862 | DOS-862 | ヘブライ語 (DOS) | Hebrew (DOS) |
863 | IBM863 | フランス語 (カナダ) (DOS) | French Canadian (DOS) |
864 | IBM864 | アラビア語 (864) | Arabic (864) |
865 | IBM865 | 北欧 (DOS) | Nordic (DOS) |
866 | cp866 | キリル語 (DOS) | Cyrillic (DOS) |
869 | ibm869 | ギリシャ語、モダン (DOS) | Greek, Modern (DOS) |
870 | IBM870 | IBM EBCDIC (多言語ラテン-2) | IBM EBCDIC (Multilingual Latin-2) |
874 | windows-874 | タイ語 (Windows) | Thai (Windows) |
875 | cp875 | IBM EBCDIC (ギリシャ語モダン) | IBM EBCDIC (Greek Modern) |
932 | shift_jis | 日本語 (Shift-JIS) | Japanese (Shift-JIS) |
936 | gb2312 | 簡体字中国語 (GB2312) | Chinese Simplified (GB2312) |
949 | ks_c_5601-1987 | 韓国語 | Korean |
950 | big5 | 繁体字中国語 (Big5) | Chinese Traditional (Big5) |
1026 | IBM1026 | IBM EBCDIC (トルコ語ラテン-5) | IBM EBCDIC (Turkish Latin-5) |
1047 | IBM01047 | IBM ラテン-1 | IBM Latin-1 |
1140 | IBM01140 | IBM EBCDIC (米国-カナダ-ヨーロッパ) | IBM EBCDIC (US-Canada-Euro) |
1141 | IBM01141 | IBM EBCDIC (ドイツ-ヨーロッパ) | IBM EBCDIC (Germany-Euro) |
1142 | IBM01142 | IBM EBCDIC (デンマーク-ノルウェー-ヨーロッパ) | IBM EBCDIC (Denmark-Norway-Euro) |
1143 | IBM01143 | IBM EBCDIC (フィンランド-スウェーデン-ヨーロッパ) | IBM EBCDIC (Finland-Sweden-Euro) |
1144 | IBM01144 | IBM EBCDIC (イタリア-ヨーロッパ) | IBM EBCDIC (Italy-Euro) |
1145 | IBM01145 | IBM EBCDIC (スペイン-ヨーロッパ) | IBM EBCDIC (Spain-Euro) |
1146 | IBM01146 | IBM EBCDIC (UK-ヨーロッパ) | IBM EBCDIC (UK-Euro) |
1147 | IBM01147 | IBM EBCDIC (フランス-ヨーロッパ) | IBM EBCDIC (France-Euro) |
1148 | IBM01148 | IBM EBCDIC (国際対応-ヨーロッパ) | IBM EBCDIC (International-Euro) |
1149 | IBM01149 | IBM EBCDIC (アイスランド語-ヨーロッパ) | IBM EBCDIC (Icelandic-Euro) |
1200 | utf-16 | Unicode | Unicode |
1201 | unicodeFFFE | Unicode (ビッグエンディアン) | Unicode (Big endian) |
1250 | windows-1250 | 中央ヨーロッパ言語 (Windows) | Central European (Windows) |
1251 | windows-1251 | キリル語 (Windows) | Cyrillic (Windows) |
1252 | Windows-1252 | 西ヨーロッパ言語 (Windows) | Western European (Windows) |
1253 | windows-1253 | ギリシャ語 (Windows) | Greek (Windows) |
1254 | windows-1254 | トルコ語 (Windows) | Turkish (Windows) |
1255 | windows-1255 | ヘブライ語 (Windows) | Hebrew (Windows) |
1256 | windows-1256 | アラビア語 (Windows) | Arabic (Windows) |
1257 | windows-1257 | バルト語 (Windows) | Baltic (Windows) |
1258 | windows-1258 | ベトナム語 (Windows) | Vietnamese (Windows) |
1361 | Johab | 韓国語 (Johab) | Korean (Johab) |
10000 | macintosh | 西ヨーロッパ言語 (Mac) | Western European (Mac) |
10001 | x-mac-japanese | 日本語 (Mac) | Japanese (Mac) |
10002 | x-mac-chinesetrad | 繁体字中国語 (Mac) | Chinese Traditional (Mac) |
10003 | x-mac-korean | 韓国語 (Mac) | Korean (Mac) |
10004 | x-mac-arabic | アラビア語 (Mac) | Arabic (Mac) |
10005 | x-mac-hebrew | ヘブライ語 (Mac) | Hebrew (Mac) |
10006 | x-mac-greek | ギリシャ語 (Mac) | Greek (Mac) |
10007 | x-mac-cyrillic | キリル語 (Mac) | Cyrillic (Mac) |
10008 | x-mac-chinesesimp | 簡体字中国語 (Mac) | Chinese Simplified (Mac) |
10010 | x-mac-romanian | ルーマニア語 (Mac) | Romanian (Mac) |
10017 | x-mac-ukrainian | ウクライナ語 (Mac) | Ukrainian (Mac) |
10021 | x-mac-thai | タイ語 (Mac) | Thai (Mac) |
10029 | x-mac-ce | 中央ヨーロッパ言語 (Mac) | Central European (Mac) |
10079 | x-mac-icelandic | アイスランド語 (Mac) | Icelandic (Mac) |
10081 | x-mac-turkish | トルコ語 (Mac) | Turkish (Mac) |
10082 | x-mac-croatian | クロアチア語 (Mac) | Croatian (Mac) |
12000 | utf-32 | Unicode (UTF-32) | Unicode (UTF-32) |
12001 | utf-32BE | Unicode (UTF-32 ビッグエンディアン) | Unicode (UTF-32 Big endian) |
20000 | x-Chinese-CNS | 繁体字中国語 (CNS) | Chinese Traditional (CNS) |
20001 | x-cp20001 | TCA 台湾 | TCA Taiwan |
20002 | x-Chinese-Eten | 繁体字中国語 (Eten) | Chinese Traditional (Eten) |
20003 | x-cp20003 | IBM5550 台湾 | IBM5550 Taiwan |
20004 | x-cp20004 | 文字放送 (台湾) | TeleText Taiwan |
20005 | x-cp20005 | Wang 台湾 | Wang Taiwan |
20105 | x-IA5 | 西ヨーロッパ言語 (IA5) | Western European (IA5) |
20106 | x-IA5-German | ドイツ語 (IA5) | German (IA5) |
20107 | x-IA5-Swedish | スウェーデン語 (IA5) | Swedish (IA5) |
20108 | x-IA5-Norwegian | ノルウェー語 (IA5) | Norwegian (IA5) |
20127 | us-ascii | US-ASCII | US-ASCII |
20261 | x-cp20261 | T. 61 | T.61 |
20269 | x-cp20269 | ISO-6937 | ISO-6937 |
20273 | IBM273 | IBM EBCDIC (ドイツ) | IBM EBCDIC (Germany) |
20277 | IBM277 | IBM EBCDIC (デンマーク-ノルウェー) | IBM EBCDIC (Denmark-Norway) |
20278 | IBM278 | IBM EBCDIC (フィンランド-スウェーデン) | IBM EBCDIC (Finland-Sweden) |
20280 | IBM280 | IBM EBCDIC (イタリア) | IBM EBCDIC (Italy) |
20284 | IBM284 | IBM EBCDIC (スペイン) | IBM EBCDIC (Spain) |
20285 | IBM285 | IBM EBCDIC (UK) | IBM EBCDIC (UK) |
20290 | IBM290 | IBM EBCDIC (日本語カタカナ) | IBM EBCDIC (Japanese katakana) |
20297 | IBM297 | IBM EBCDIC (フランス) | IBM EBCDIC (France) |
20420 | IBM420 | IBM EBCDIC (アラビア語) | IBM EBCDIC (Arabic) |
20423 | IBM423 | IBM EBCDIC (ギリシャ語) | IBM EBCDIC (Greek) |
20424 | IBM424 | IBM EBCDIC (ヘブライ語) | IBM EBCDIC (Hebrew) |
20833 | x-EBCDIC-KoreanExtended | IBM EBCDIC (韓国語拡張) | IBM EBCDIC (Korean Extended) |
20838 | IBM-Thai | IBM EBCDIC (タイ語) | IBM EBCDIC (Thai) |
20866 | koi8-r | キリル語 (KOI8-R) | Cyrillic (KOI8-R) |
20871 | IBM871 | IBM EBCDIC (アイスランド語) | IBM EBCDIC (Icelandic) |
20880 | IBM880 | IBM EBCDIC (キリル文字ロシア語) | IBM EBCDIC (Cyrillic Russian) |
20905 | IBM905 | IBM EBCDIC (トルコ語) | IBM EBCDIC (Turkish) |
20924 | IBM00924 | IBM ラテン-1 | IBM Latin-1 |
20932 | EUC-JP | 日本語 (JIS 0208-1990 および 0212-1990) | Japanese (JIS 0208-1990 and 0212-1990) |
20936 | x-cp20936 | 簡体字中国語 (GB2312-80) | Chinese Simplified (GB2312-80) |
20949 | x-cp20949 | 韓国 Korean-wansung-unicode | Korean Wansung |
21025 | cp1025 | IBM EBCDIC (キリル語セルビア-ブルガリア) | IBM EBCDIC (Cyrillic Serbian-Bulgarian) |
21866 | koi8-u | キリル語 (KOI8-U) | Cyrillic (KOI8-U) |
28591 | iso-8859-1 | 西ヨーロッパ言語 (ISO) | Western European (ISO) |
28592 | iso-8859-2 | 中央ヨーロッパ言語 (ISO) | Central European (ISO) |
28593 | iso-8859-3 | ラテン 3 (ISO) | Latin 3 (ISO) |
28594 | iso-8859-4 | バルト語 (ISO) | Baltic (ISO) |
28595 | iso-8859-5 | キリル語 (ISO) | Cyrillic (ISO) |
28596 | iso-8859-6 | アラビア語 (ISO) | Arabic (ISO) |
28597 | iso-8859-7 | ギリシャ語 (ISO) | Greek (ISO) |
28598 | iso-8859-8 | ヘブライ語 (ISO-Visual) | Hebrew (ISO-Visual) |
28599 | iso-8859-9 | トルコ語 (ISO) | Turkish (ISO) |
28603 | iso-8859-13 | エストニア語 (ISO) | Estonian (ISO) |
28605 | iso-8859-15 | ラテン 9 (ISO) | Latin 9 (ISO) |
29001 | x-Europa | Europa | Europa |
38598 | iso-8859-8-i | ヘブライ語 (ISO-論理) | Hebrew (ISO-Logical) |
50220 | iso-2022-jp | 日本語 (JIS) | Japanese (JIS) |
50221 | csISO2022JP | 日本語 (JIS-1 バイトカタカナを許可) | Japanese (JIS-Allow 1 byte Kana) |
50222 | iso-2022-jp | 日本語 (JIS-1 バイトカタカナを許可する-SO/SI) | Japanese (JIS-Allow 1 byte Kana – SO/SI) |
50225 | iso-2022-kr | 韓国語 (ISO) | Korean (ISO) |
50227 | x-cp50227 | 簡体字中国語 (ISO-2022) | Chinese Simplified (ISO-2022) |
51932 | euc-jp | 日本語 (EUC) | Japanese (EUC) |
51936 | EUC-CN | 簡体字中国語 (EUC) | Chinese Simplified (EUC) |
51949 | euc-kr | 韓国語 (EUC) | Korean (EUC) |
52936 | hz-gb-2312 | 簡体字中国語 (HZ) | Chinese Simplified (HZ) |
54936 | GB18030 | 簡体字中国語 (GB18030) | Chinese Simplified (GB18030) |
57002 | x-iscii-de | ISCII デバナガリ文字 | ISCII Devanagari |
57003 | x-iscii-be | ISCII ベンガル語 | ISCII Bengali |
57004 | x-iscii-ta | ISCII タミール語 | ISCII Tamil |
57005 | x-iscii-te | ISCII テルグ語 | ISCII Telugu |
57006 | x-iscii-as | ISCII アッサム語 | ISCII Assamese |
57007 | x-iscii-or | ISCII オリヤー語 | ISCII Oriya |
57008 | x-iscii-ka | ISCII カンナダ語 | ISCII Kannada |
57009 | x-iscii-ma | ISCII マラヤーラム語 | ISCII Malayalam |
57010 | x-iscii-gu | ISCII グジャラート語 | ISCII Gujarati |
57011 | x-iscii-pa | ISCII パンジャブ語 | ISCII Punjabi |
65000 | utf-7 | Unicode (UTF-7) | Unicode (UTF-7) |
65001 | utf-8 | Unicode (UTF-8) | Unicode (UTF-8) |
参考URL
Encoding クラス