この記事は、Pulumi dotnet Advent Calendar 2019 の19日目です。
そろそろどうやるか見てみましょう。 と思ったのですが、日本語OS上では解決方法が見つからないのでゆるぼ。
目次
TL;DR
現状日本語 Windows では 打つ手なさそう
Summary
pulumi up をすると、dotnet コマンド処理が文字化ける。
cmd/powershell/pwsh のいずれでも発生。
.NET Core ���� Microsoft (R) Build Engine �o�[�W���� 16.3
出力というよりこっちの文字化けをどう対応するか
NOTE: だめな方法
CodePagesEncodingProvider
よく、出力文字列に関しては Encoding の違いということで次の対応がとられる。
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
しかしこれでは、dotnet コマンドの文字化けは解消しない。
chcp
dotnet build がdotnet exec を介しているなら、ということでdotnet 出力が utf-8 であるという前提でコンソールの文字エンコーディングを utf-8にして合わせてみる。
ようはこれ。
Visual Studio Codeタスクのdotnetコマンド出力を文字化けしないようにする - Qiita
この方法で取られるのが、コンソール文字列のエンコーディングを chcp 65001
で utf-8 にしてみる。
が、ダメ。
dotnet の言語を変えるようにしてみる
MSBuild should respect upstream tool language requests · Issue #1596 · microsoft/msbuild · GitHub
set DOTNET_CLI_UI_LANGUAGE=en set VSLANG=1033
だめ。
推察
dotnet は単純に実行するとコンソールに合わせて文字化けしない。つまり shift-jis で出力している。
が、pulumi up
時に dotnet の出力を食ってはいているので、ここが utf-8 を前提にしている可能性がある。
dotnet > Go > Console
の間のエンコーディングっぽいので、現時点では英語OS でという身もふたもない結果になりそう。