2. プロファイルをメモ帳で開く

2. プロファイルをメモ帳で開くの見逃せないポイントを徹底的にカバーしました。

PowerShellで日本語が崩れて表示される直接的な原因は、コンソール画面のコードページ、スクリプトファイルの保存形式、外部プロセス間パイプラインのエンコード設定という3つの要素が乖離していることにあります。

従来のWindows PowerShell(バージョン5.1系)は、日本語版Windowsの標準である「CP932(Shift-JISの拡張版)」をデフォルトのコードページとして採用しています。一方で、近年のWeb開発環境、PythonやNode.jsといったプログラミング言語、Gitなどのツール群は、出力テキストを原則として「UTF-8」で生成します。そのため、UTF-8で出力された3バイトの日本語文字データを、PowerShellがCP932(2バイト文字体系)として解釈しようとした瞬間に、意味をなさない記号の羅列へと変貌してしまいます。

さらに、PowerShell内部には以下の独立したエンコード管理機構が存在します。

・[Console]::OutputEncoding:コンソール画面に出力する文字のエンコード
・$OutputEncoding:PowerShellから外部コマンド(git, curl, python等)へ渡すデータのエンコード
・[Console]::InputEncoding:ユーザーがキーボード入力した文字のエンコード

これら複数のレイヤーにおいて設定値がバラバラになっている状態こそが、日本語が正常に処理されない決定的な理由です。

中村 さくら

中村 さくら

マネー&キャリアエディター

エンタメ・カルチャー業界の深掘り取材を得意とし、現場のリアルな声をお伝えします。

Share this article
Twitter Facebook Pinterest