以下の内容はhttps://tech.guitarrapc.com/entry/2019/12/19/000000より取得しました。


pulumi up時の文字化け対策

この記事は、Pulumi dotnet Advent Calendar 2019の19日目です。

https://qiita.com/advent-calendar/2019/pulumi-dotnet

そろそろどうやるか見てみましょう。 と思ったのですが、日本語OS上では解決方法が見つからないのでゆるぼ。

概要

現状日本語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にして合わせてみる。

ようはこれ。

.NET Core task outputs garbled characters in build log on non EN-US environments. · Issue #1344 · microsoft/azure-pipelines-agent

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を前提にしている可能性がある。

pulumi/up.go at master · pulumi/pulumi

dotnet > Go > Consoleの間のエンコーディングっぽいので、現時点では英語OSで。

REF

.NET Core task outputs garbled characters in build log on non EN-US environments. · Issue #1344 · microsoft/azure-pipelines-agent




以上の内容はhttps://tech.guitarrapc.com/entry/2019/12/19/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14