Goal
VSCodeの統合ターミナルでPowerShellを開いた時の文字コードをUTF-8に変更する。
手順
- settings.jsonを開く
- 設定を記述し保存
settings.jsonを開く
自分はctrl+shift+pから開く方法しか知らなかったのですが、
検索するとy-wさんが設定画面からsettings.jsonを
開く方法を紹介されています。
設定を記述し保存(Version: 1.56.0以降の書き方、PowerShell 7対応)
settings.json
{
// "terminal.integrated.defaultProfile.windows"では、
// 統合ターミナルをPowerShellに変更
"terminal.integrated.defaultProfile.windows": "PowerShell",
// "terminal.integrated.profiles.windows"では、
// 複数のターミナルに対して、実行ファイルと引数を設定することができる
"terminal.integrated.profiles.windows": {
"PowerShell": {
// "PowerShell"と"Git Bush"に対してはパスを指定する必要がない
"source": "PowerShell",
// PowerShellの実行ファイル名の後ろに引数を付けて、
// 実行させることが可能
"args": [
// コマンド実行後もPowerShellを閉じない
"-NoExit",
// 文字コードをUTF-8に変更するコマンドを実行
"-Command",
"chcp 65001",
// "Active code page: 65001"を表示しないためのコマンド
// 下記のコマンドは出力を捨てることが可能
"|",
"Out-Null",
// おまけ①: 好みでコマンドを後ろに続ける
";",
// 本例はカレントディレクトリをデスクトップに変更
"cd ${env:USERPROFILE}/Desktop"
],
},
// おまけ2: コマンドプロンプトで同じことを設定
"Command Prompt": {
// コマンドプロンプトの実行ファイルのパスを設定
"path": "C:/WINDOWS/System32/cmd.exe",
"args": [
"/k",
"chcp",
"65001",
">nul",
"2>&1",
"&&",
"cd",
"%USERPROFILE%/Desktop"
],
},
},
}
VSCode Version: 1.56.0以降の書き方(PowerShell 6用)
settings.json
{
// "terminal.integrated.defaultProfile.windows"では、
// 統合ターミナルをPowerShellに変更
"terminal.integrated.defaultProfile.windows": "PowerShell",
// "terminal.integrated.profiles.windows"では、
// 複数のターミナルに対して、実行ファイルと引数を設定することができる
"terminal.integrated.profiles.windows": {
"PowerShell": {
// "PowerShell"と"Git Bush"に対してはパスを指定する必要がない
"source": "PowerShell",
// PowerShellの実行ファイル名の後ろに引数を付けて、
// 実行させることが可能
"args": [
// コマンド実行後もPowerShellを閉じない
"-NoExit",
// 文字コードをUTF-8に変更するコマンドを実行
"-Command",
"chcp",
"65001",
// "Active code page: 65001"を表示しないためのコマンド
// 下記のコマンドは出力を捨てることが可能
">$NULL",
// おまけ1: 好みでコマンドを後ろに続ける
";",
// 本例はカレントディレクトリをデスクトップに変更
"cd",
"${env:USERPROFILE}/Desktop"
],
},
},
}
VSCode Version: 1.55.0以前の書き方
settings.json
{
// "terminal.integrated.shellArgs.windows"では
// シェルの実行ファイルに引数を付けて、実行させることができる。
"terminal.integrated.shellArgs.windows": [
/* コマンド実行後もPowerShellを開き続ける */
"-NoExit",
/* コマンド実行 */
"-Command",
/* 文字コード変更 */
"chcp 65001",
/* "Active code page: 65001"を表示しないためのコマンド */
/* 下記のコマンドはいずれも出力を捨てることができる */
"| Out-Null",
// "> $null",
],
}