Windowsコマンドプロンプト:sshコマンド実行後にコマンド実行すると日本語が文字化けする

IT知識

sshコマンド実行後にコマンドプロンプト上でWindowsバッチファイルを実行する場合は注意が必要である。

わたしはコマンドプロンプトからsshコマンドでラズパイに接続し、ログアウト後にバッチファイルを実行した際にこの現象に気づいた。

発生した環境

Windows 11 Home バージョン/23H2 OSビルド/22631.3810

コマンドプロンプトでの文字コードが勝手に切り替わったわけではなく単純なバグのようだ。
Windows10からこの現象が発生していたことが以下の記事からもわかる。

対処方法

コマンドから

chcp 932

とすれば元に戻る。

ちなみにsshコマンド実行後にchcpコマンドで文字コードを表示のようになぜか932(=Shift JIS)となっているメッセージが表示される。(メッセージは自体は英語だが)

Active code page: 932

これは間違いで、この時点で chcp 65001 が実行されて実際にはコマンドプロンプト上の文字コードがUTF-8になっていると思われる。

実際の画面イメージ

以下で登場する hoge.txtShift-JISで保存したテキストファイルとする。

以上から、sshコマンド実行後にWindowsバッチファイルを実行する場合は注意が必要である。

コメント

タイトルとURLをコピーしました