コードページを変更するchcpコマンド
Windowsコマンドにはコンソールコードページを変更するchcpというコマンドが存在している。
このコマンドは名前のとおりにコンソールのコードページを変更するためのコマンドで、sshやtelnetでリモートホストにログインした場合にリモートホストの文字コードにコンソールのコードページを合わせたり、ファイルを処理する場合にファイルの文字コードにコンソールのコードページを合わせるといった目的で使われることがある。
通常このコマンドを実行することはないが、コンソールを使いこなそうと思うとそのうち必要になるシーンも出てくるので、覚えておいて損はない。
Microsoftのコードページ
そもそもコードページとは何かだが、これはシステムベンダが各社ごとに独自に規定している符号化文字集合を指定するための数字のことだ。またはその数字が意味する符号化集合であったり、それらに関連するシステムを指す言葉として使われている。
つまりコードページはベンダ独自の値なので、標準規約を調べてもこの値は出てこない。ベンダそれぞれのドキュメントを参考にする必要がある。Microsoftのコードページは「Code Page Identifiers | Microsoft Docs」にまとまっている。
コードページ認識子 | .NET名 | 内容 |
---|---|---|
037 | IBM037 | IBM EBCDIC 米国カナダ |
437 | IBM437 | OEM 米国 |
500 | IBM500 | IBM EBCDIC インターナショナル |
708 | ASMO-708 | アラビア語 (ASMO 708) |
709 | アラビア語 (ASMO-449+、BCON V4) | |
710 | アラビア語 - トランスパレントアラビア語 | |
720 | DOS-720 | アラビア語 (トランスパレント ASMO); アラビア語 (DOS) |
737 | ibm737 | OEM ギリシャ語 (旧名 437G); ギリシャ語 (DOS) |
775 | ibm775 | OEM バルト語; バルト語 (DOS) |
850 | ibm850 | OEM マルチリンガルラテン1; ウェスタンユーロピアン (DOS) |
852 | ibm852 | OEM ラテン2; セントラルユーロピアン (DOS) |
855 | IBM855 | OEM キリル語 (主にロシア) |
857 | ibm857 | OEM トルコ語; トルコ語 (DOS) |
858 | IBM00858 | OEM マルチリンガルラテン1 + ユーロシンボル |
860 | IBM860 | OEM ポルトガル語; ポルトガル語 (DOS) |
861 | ibm861 | OEM アイスランド語; アイスランド語 (DOS) |
862 | DOS-862 | OEM ヘブライ語; ヘブライ語 (DOS) |
863 | IBM863 | OEM フレンチカナダ; フレンチカナダ (DOS) |
864 | IBM864 | OEM アラビア語; アラビア語 (864) |
865 | IBM865 | OEM ノルウェー語; ノルウェー語 (DOS) |
866 | cp866 | OEM ロシア語; キリル語 (DOS) |
869 | ibm869 | OEM モダンギリシャ語; モダンギリシャ語 (DOS) |
870 | IBM870 | IBM EBCDIC マルチリンガル/ROECE (ラテン2); IBM EBCDIC マルチリンガルラテン2 |
874 | windows-874 | ANSI/OEM タイ語 (ISO 8859-11); タイ語 (Windows) |
875 | cp875 | IBM EBCDIC モダンギリシャ語 |
932 | shift_jis | ANSI/OEM 日本語; 日本語 (Shift-JIS) |
936 | gb2312 | ANSI/OEM 簡体字中国語 (PRC、シンガポール); 簡体字中国語 (GB2312) |
949 | ks_c_5601-1987 | ANSI/OEM 韓国語 (統合ハングルコード) |
950 | big5 | ANSI/OEM 繁体字中国語 (台湾; 香港 SAR、PRC); 繁体字中国語 (Big5) |
1026 | IBM1026 | IBM EBCDIC トルコ語 (ラテン5) |
1047 | IBM01047 | IBM EBCDIC ラテン1/Open System |
1140 | IBM01140 | IBM EBCDIC 米国カナダ (037 + ユーロシンボル); IBM EBCDIC (米国カナダユーロ) |
1141 | IBM01141 | IBM EBCDIC ドイツ語 (20273 + ユーロシンボル); IBM EBCDIC (ドイツユーロ) |
1142 | IBM01142 | IBM EBCDIC デンマークノルウェー (20277 + ユーロシンボル); IBM EBCDIC (デンマークノルウェーユーロ) |
1143 | IBM01143 | IBM EBCDIC フィンランドスウェーデン (20278 + ユーロシンボル); IBM EBCDIC (フィンランドスウェーデンユーロ) |
1144 | IBM01144 | IBM EBCDIC イタリア (20280 + ユーロシンボル); IBM EBCDIC (イタリアユーロ) |
1145 | IBM01145 | IBM EBCDIC ラテンアメリアスペイン (20284 + ユーロシンボル); IBM EBCDIC (スペインユーロ) |
1146 | IBM01146 | IBM EBCDIC 英国 (20285 + ユーロシンボル); IBM EBCDIC (英国ユーロ) |
1147 | IBM01147 | IBM EBCDIC France (20297 + ユーロシンボル); IBM EBCDIC (フランスユーロ) |
1148 | IBM01148 | IBM EBCDIC インターナショナル (500 + ユーロシンボル); IBM EBCDIC (インターナショナルユーロ) |
1149 | IBM01149 | IBM EBCDIC アイスランド語 (20871 + ユーロシンボル); IBM EBCDIC (アイスランドユーロ) |
1200 | utf-16 | Unicode UTF-16、リトルエンディアンバイトオーダー (BMP of ISO 10646); 管理対象アプリケーションにのみ使用可能 |
1201 | unicodeFFFE | Unicode UTF-16、ビッグエンディアンバイトオーダー。管理対象アプリケーションにのみ使用可能 |
1250 | windows-1250 | ANSI セントラルユーロピアン; セントラルユーロピアン (Windows) |
1251 | windows-1251 | ANSI キリル語; キリル語 (Windows) |
1252 | windows-1252 | ANSI ラテン1; ウェスタンユーロピアン (Windows) |
1253 | windows-1253 | ANSI ギリシャ語; ギリシャ語 (Windows) |
1254 | windows-1254 | ANSI トルコ語; トルコ語 (Windows) |
1255 | windows-1255 | ANSI ヘブライ語; ヘブライ語 (Windows) |
1256 | windows-1256 | ANSI アラビア語; アラビア語 (Windows) |
1257 | windows-1257 | ANSI バルト語; バルト語 (Windows) |
1258 | windows-1258 | ANSI/OEM ベトナム語; ベトナム語 (Windows) |
1361 | Johab | 韓国語 (Johab) |
10000 | macintosh | MAC ローマ語; ウェスタンユーロピアン (Mac) |
10001 | x-mac-japanese | 日本語 (Mac) |
10002 | x-mac-chinesetrad | MAC 繁体中国語 (Big5); 繁体中国語 (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 簡体中国語 (GB 2312); 簡体中国語 (Mac) |
10010 | x-mac-romanian | ルーマニア語 (Mac) |
10017 | x-mac-ukrainian | ウクライナ語 (Mac) |
10021 | x-mac-thai | タイ語 (Mac) |
10029 | x-mac-ce | MAC ラテン2; セントラルユーロピアン (Mac) |
10079 | x-mac-icelandic | アイスランド語 (Mac) |
10081 | x-mac-turkish | トルコ語 (Mac) |
10082 | x-mac-croatian | クロアチア語 (Mac) |
12000 | utf-32 | Unicode UTF-32、リトルエンディアンバイトオーダー。管理対象アプリケーションにのみ使用可能 |
12001 | utf-32BE | Unicode UTF-32、ビッグエンディアンバイトオーダー。管理対象アプリケーションにのみ使用可能 |
20000 | x-Chinese_CNS | CNS 台湾; 繁体中国語 (CNS) |
20001 | x-cp20001 | TCA 台湾 |
20002 | x_Chinese-Eten | Eten 台湾; 繁体中国語 (Eten) |
20003 | x-cp20003 | IBM5550 台湾 |
20004 | x-cp20004 | TeleText 台湾 |
20005 | x-cp20005 | Wang 台湾 |
20105 | x-IA5 | IA5 (IRV インターナショナルアルファベット No. 5、7ビット); ウェスタンユーロピアン (IA5) |
20106 | x-IA5-German | IA5 ドイツ語 (7ビット) |
20107 | x-IA5-Swedish | IA5 スウェーデン語 (7ビット) |
20108 | x-IA5-Norwegian | IA5 ノルウェー語 (7ビット) |
20127 | us-ascii | US-ASCII (7ビット) |
20261 | x-cp20261 | T.61 |
20269 | x-cp20269 | ISO 6937 非スペースアクセント |
20273 | IBM273 | IBM EBCDIC ドイツ語 |
20277 | IBM277 | IBM EBCDIC デンマークノルウェー |
20278 | IBM278 | IBM EBCDIC フィンランドスウェーデン |
20280 | IBM280 | IBM EBCDIC イタリア語 |
20284 | IBM284 | IBM EBCDIC ラテンアメリアスペイン |
20285 | IBM285 | IBM EBCDIC 英国 |
20290 | IBM290 | IBM EBCDIC 日本語カタカナ拡張 |
20297 | IBM297 | IBM EBCDIC フランス後 |
20420 | IBM420 | IBM EBCDIC アラビア語 |
20423 | IBM423 | IBM EBCDIC ギリシャ語 |
20424 | IBM424 | IBM EBCDIC ヘブライ語 |
20833 | x-EBCDIC-KoreanExtended | IBM EBCDIC 韓国語拡張 |
20838 | IBM-Thai | IBM EBCDIC タイ語 |
20866 | koi8-r | ロシア語 (KOI8-R); キリル語 (KOI8-R) |
20871 | IBM871 | IBM EBCDIC アイスランド語 |
20880 | IBM880 | IBM EBCDIC キリルロシア |
20905 | IBM905 | IBM EBCDIC トルコ語 |
20924 | IBM00924 | IBM EBCDIC ラテン1/Open System (1047 + ユーロシンボル) |
20932 | EUC-JP | 日本語 (JIS 0208-1990および0212-1990) |
20936 | x-cp20936 | 簡体中国語 (GB2312); 簡体中国語 (GB2312-80) |
20949 | x-cp20949 | 韓国語 Wansung |
21025 | cp1025 | IBM EBCDIC キリルセルビアブルガリア |
21027 | (非推奨) | |
21866 | koi8-u | ウクライナ語 (KOI8-U); キリル語 (KOI8-U) |
28591 | iso-8859-1 | ISO 8859-1 ラテン1; ウェスタンユーロピアン (ISO) |
28592 | iso-8859-2 | ISO 8859-2 セントラルユーロピアン; セントラルユーロピアン (ISO) |
28593 | iso-8859-3 | ISO 8859-3 ラテン3 |
28594 | iso-8859-4 | ISO 8859-4 バルト語 |
28595 | iso-8859-5 | ISO 8859-5 キリル語 |
28596 | iso-8859-6 | ISO 8859-6 アラビア語 |
28597 | iso-8859-7 | ISO 8859-7 ギリシャ語 |
28598 | iso-8859-8 | ISO 8859-8 ヘブライ語; ヘブライ語 (ISO-Visual) |
28599 | iso-8859-9 | ISO 8859-9 トルコ語 |
28603 | iso-8859-13 | ISO 8859-13 エストニア語 |
28605 | iso-8859-15 | ISO 8859-15 ラテン9 |
29001 | x-Europa | ヨーロッパ3 |
38598 | iso-8859-8-i | ISO 8859-8 ヘブライ語; ヘブライ語 (ISO-Logical) |
50220 | iso-2022-jp | ISO 2022 日本語(半角カタカナは含まない); 日本語 (JIS) |
50221 | csISO2022JP | ISO 2022 日本語(半角カタカナを含む); 日本語 (JIS-1バイトカナを許容) |
50222 | iso-2022-jp | ISO 2022 日本語 JIS X 0201-1989; 日本語 (JIS-1バイトカナを許容 - SO/SI) |
50225 | iso-2022-kr | ISO 2022 韓国語 |
50227 | x-cp50227 | ISO 2022 簡体中国語; 簡体中国語 (ISO 2022) |
50229 | ISO 2022 繁体中国語 | |
50930 | EBCDIC 日本語 (カタカナ) 拡張 | |
50931 | EBCDIC 米国カナダおよび日本語 | |
50933 | EBCDIC 韓国語拡張と韓国語 | |
50935 | EBCDIC 簡体字中国語拡張と簡体中国語 | |
50936 | EBCDIC 簡体中国語 | |
50937 | EBCDIC 米国カナダおよび繁体中国語 | |
50939 | EBCDIC 日本語 (ラテン) 拡張および日本語 | |
51932 | euc-jp | EUC 日本語 |
51936 | EUC-CN | EUC 簡体中国語; 簡体中国語 (EUC) |
51949 | euc-kr | EUC 韓国語 |
51950 | EUC 繁体中国語 | |
52936 | hz-gb-2312 | HZ-GB2312 簡体中国語; 簡体中国語 (HZ) |
54936 | GB18030 | Windows XP およびこれ以降: GB18030 簡体中国語 (4バイト); 簡体中国語 (GB18030) |
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 | ISCII パンジャブ語 |
65000 | utf-7 | Unicode (UTF-7) |
65001 | utf-8 | Unicode (UTF-8) |
Windowsを日本語版で使っているならコードページは932になっているだろう。これはいわゆる日本語Shift-JISを拡張したものだ。
chcpコマンドの実行サンプル
現在ではシステムの多くが文字コードとしてUTF-8を使うようになっている。とりあえず文字コードをUTF-8に設定しておけば問題なく動作することが多い、といった状況にある。chcpを使うとすればUTF-8に変更するといった用途が実際のところは多いんじゃないかと思う(もちろん使い方にもよるが)。
chcpコマンドの主な使い方は次の通りだ。
現在設定されているコンソールコードページを表示
chcp
コンソールコードページを指定されたコードページへ変更
chcp コードページ
たとえば、日本語の設定で動作しているWindows 10であれば、コマンドプロンプトでchcpコマンドを実行すると次のようにコードページとして932が指定されていることが示される。
chcpコマンドの引数にコードページを指定すれば、そのコンソールコードページがそのコードページに切り替わる。
実際のところ、最近のWindows 10はコンソール回りの開発が進んでおり、この手の問題が発生することは減ってきている。こういうコマンドがあるんだ、といったことをなんとなくでも覚えておいてもらえればと思う。