Windows コマンドプロンプト(cmd)のデフォルトの文字コードはshift_jis
です。
shift_jis
を使っていると日本語の文字化けで100%困ります。
現在、ほとんどのアプリでUTF-8
が使われているからです。
ということで、文字化け対策のために、コマンドプロンプト(cmd)の文字コードをUTF-8
に変更したくなるわけです。
最初からコマンドプロンプト(cmd)がUTF-8
だったら良いんですが、、、何か理由があるのかも知れませんが、、、。
ちなみにPowerShellも同じくデフォルトの文字コードはshift_jis
です。なので、この記事で紹介するchcpコマンド
はPowerShellにも使えます。
コマンドプロンプト(cmd)を起動する
Windows 11でコマンドプロンプト(cmd)を起動しましょう。
検索欄から"cmd"と入力すればコマンドプロンプト(cmd)が表示されます。
そのまま"Enter"を押せば、コマンドプロンプト(cmd)が起動します。
コマンドプロンプトの文字コードを確認する
C:\Users\ユーザー名> chcp
現在のコード ページ: 932
C:\Users\ユーザー名>
コマンドプロンプト(cmd)上でchcp
コマンドを打てば、現在の文字コードの設定を確認できます。
932
なので文字コードはshift_jis
です。
shift_jis
をUTF-8
で開いたりすると日本語が文字化けします。
なので、文字コードをUTF-8
します。
shift_jis
で「表示」という文字を、CGIスクリプト中に記述して出力すると「侮ヲ」と文字化けします。
shift_jis
では、日本語は1文字当り2バイトで表現されます。shift_jis
の「表示」という文字コードは下記で表現されます。
文字 | 表 | 示 | ||
shift_jisコード | 95 | 5C | 8E | A6 |
しかし、「表」の2バイト目の「5C」は、メタ文字(特殊文字)の「¥」の文字コードと重複します(shift_jisの場合)。 「¥」が文字列中にあると、コンピュータはこれをエスケープ記号として解釈し、次のように表示します。
- (1) 95 5C 8E A6 ... 記述時点
- (2) 95 5C 8E A6 ... 「5C」を「¥」と解釈し取り去る(その次の8Eをエスケープすると解釈)
- (3) 95 8E A6 A6 ... 展開結果
文字 | 侮 | ヲ (半角) | ||
shift_jisコード | 95 | 8E | A6 |
最終的な表示として、文字コード「95 8E A6」の展開結果は上になります。
コマンドプロンプトの文字コードをUTF-8に変更する
C:\Users\ユーザー名> chcp 65001
chcp 文字コード
で、コマンドプロンプトの文字コードを変更できます。
UTF-8の文字コードは65001
です。
なのでchcp 65001
で文字コードがUTF-8になります。
Active code page: 65001
C:\Users\ユーザー名>
chcp 65001
コマンドを打つとActive code page: 65001
と表示され画面が切り替わります(再読み込みされます。)。
これで文字コードがUTF-8
になりました。
UTF-8(Unicode)がよく使われる理由は、ASCIIとの互換があるからです。
大半がUnicodeとは言っても英語圏では、まだまだASCIIが使われています。UTF-8(Unicode)は、そのASCIIと互換性があるというのが大きな利点です。
またUTF-8にはエンディアンの問題もありません。
これがUTF-8が使われている理由です。
文字コード表
識別子 | .NET 名 | 関連情報 |
---|---|---|
932 | shift_jis | ANSI/OEM 日本語; 日本語(Shift-JIS) |
20127 | us-ascii | US-ASCII(7ビット) |
65001 | utf-8 | Unicode(UTF-8) |
shift_jis:932、UTF-8:65001などの文字コードの設定値は、当たり前ですがMicrosoftが決めています。
UTF-8以外にする人はいないと思いますが、、、
Microsoftの公式ページに文字コード表があるので、他の文字コードにしたい方は参考になるかと思います。
- Microsoft コード ページ識別子
- https://docs.microsoft.com/ja-jp/windows/win32/intl/code-page-identifiers
PowerShell もchcpコマンドが使える
PowerShell 7.2.6
Copyright (c) Microsoft Corporation.
https://aka.ms/powershell
Type 'help' to get help.
PS C:\Windows\System32> chcp
現在のコード ページ: 932
PS C:\Windows\System32>
PowerShell もデフォルトの文字コードはshift_jis
です。
PowerShell も同じくchcp 文字コード
コマンドで文字コードを変更できます。
【記事PR】M1・M2 MacをゲーミングPC化する!Apexでゲーム配信しよう!
M1・M2 Macでゲーム配信しないのは「勿体ない」です。
M1・M2 Macは思っている以上に何でもできるハイスペックマシンだからです。
しかし、ほとんどのFPSゲームには、必ず「WindowsゲーミングPC」が必要になります。
ただ、これからはM1・M2 Macでゲームするのが普通です。
なぜなら、今後、ゲーミングPCは「クラウドGPUの時代」だからです。
GeForce NOWには無料のフリープランがあるので、とりあえず、試しにM1・M2 MacをWindowsゲーミングPC化できます。
今後、ますます「ゲーム配信」が活発になります。
GeForce NOWを使えば、母艦(M1・M2 Mac)のスペックなんか関係ないからです。
GeForce NOWなら「高額で巨大グラボ」が無くても、Windowsゲームが出来るわけです。
M1・M2 Macで「ゲーム配信」をするのをオススメします。
「Bizarre」ゲームストリーミングチーム!
「Bizarre」への参加・脱退は「Twitterのブロック解除」なみに簡単です。
「Bizarre」よくあるご質問も読んで見て下さい。
Buffalo外付けM.2 SSD
Amazon 最新ランキング(ゲーム)
コメント