2011年5月21日土曜日

CHCP = 現在の画面の言語設定(= 文字コード)を変更する - Windowsのコマンドプロンプト(bat,cmd)

Windowsコマンド。画面表示と印刷関連
○Windows XP
現在のコマンドプロンプト画面の言語設定を切り替えます。

o 変更出来る言語設定は、インストール環境によって異なります。
o Windows XPのコマンドプロンプト画面の場合、UTF-8 には完全対応していないみたいです。
o なお、次の時は、このコマンドを発行する必要はありません。
    + 外部プログラムが、直接、他の文字コードでファイルを読み書きするだけの時
        + 出力をファイルにリダイレクトする時も、大丈夫みたいです。


**** 書式
--------
chcp コードページ番号
--------

o コマンド名は、大文字小文字のどちらでも大丈夫です。
o コードページ番号 = 数字で指定します。
    + このコマンドで指定出来る、主なコードページ番号は、
        + 437 = 米国
        + 932 = 日本(= Shiht JIS のWindows仕様)
    + この他、指定出来るかもしれないコードページ番号の一覧は、機能欄をご覧下さい。


**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o 0 = 成功
o 1 = エラー。指定出来ない値
    + 「無効なコードページです」 = 指定したコードページは非サポートです。
    + 「Invalid code page」 = 指定したコードページは非サポートです。


**** 使用例
--------
chcp 437
--------

    + コマンド名は、大文字小文字のどちらでも大丈夫です。


**** 機能
o 現在のコマンドプロンプト画面の言語設定を切り替えます。
    + 切り替える時には、言語に対応するコードページ番号を指定します。

o 環境によって、使用出来るコードページ番号は異なります。
o 指定出来るかもしれないコードページ番号の一覧は、「コードページ番号。その意味と一覧の在り処
o なお、次の時は、このコマンドを発行する必要はありません。
    + 外部プログラムが、直接、他の文字コードでファイルを読み書きするだけの時
        + 出力をファイルにリダイレクトする時も、大丈夫みたいです。

CHCP コマンドで指定出来る、主なコードページ番号 (= 3桁コードのみ調査)
コード意味補足説明
37IBM EBCDIC アメリカとカナダ用文字化け
437アメリカ合衆国公式サポート
500IBM EBCDIC インターナショナル文字化け
737ギリシャ文字別の言語を表示
775バルト諸国別の言語を表示
850マルチリンガル (ラテン I)公式サポート
852スラブ語 (ラテン II)公式サポート
855キリル文字 (ロシア)公式サポート
857トルコ語公式サポート
860ポルトガル語公式サポート
861アイスランド語公式サポート
863カナダのフランス語公式サポート
865北欧の言語公式サポート
866ロシア語公式サポート
869現代ギリシャ語公式サポート
874タイ語別の言語を表示
875IBM仕様の現代ギリシャ語文字化け
932日本語(= Shiht JIS のWindows仕様)日本語版の標準
    + Windows XP の32ビット版で確認しました。
    + 「公式サポート」= マイクロソフト社の公開資料「▽Chcp (Microsoft TechNet)」に明記されていた番号です。
    + 「別の言語を表示」= 別の文字コード表が割り当てれている番号です。
    + 「文字化け」= バッチファイルから呼び出すと、明らかな表示不正を起こした番号です。


**** メモ
o 次のコードページ番号は、Windows XP では上手く動きませんでした。
    + 20932 = EUC-JP = 文字化け
    + 65001 = UTF-8 = 文字化け

o Windows XPのコマンドプロンプト画面表示は、UTF-8 には完全対応していないみたいです。
    + 以前は、「chcp 65001」を指定するとエラーになっていました。
    + ところが、開発用ツールをいくつかインストールした頃から、指定出来るようになりました。
    + 但し、その状態でも表示は文字化けします。


**** 確認したバージョン
o Windows XP Service Pack 3  (+ 32ビット。Windows Update 2011年4月版)


== 関連ページ:
    ▼画面表示と印刷関連▼ABC順
    ▼Windowsコマンド一覧▼ABC順
    ▼コマンドプロンプト画面
    ▼制作メモ
    > GRAFTABL = 表示中画面の言語設定を切り替えて、グラフィックスモードを使用可能にする(= 32ビット専用)
    TITLE = 現在のコマンドプロンプト画面のタイトルを変更する
    BREAK = 何もしない。DOSシステムとの互換用
(2011年5月21日追記。外部プログラムからファイルへの直接入出力時、このコマンドは不要)