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.txt はShift-JISで保存したテキストファイルとする。
![](https://torisky.com/wp-content/uploads/2024/07/after_ssh_chcp.jpg)
以上から、sshコマンド実行後にWindowsバッチファイルを実行する場合は注意が必要である。
コメント