この記事は、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で。