PowerShell内でパイプを使用すると文字化けする
Mijinko_SD.icon
https://gyazo.com/6adcfd2e84ac38c050c4d31eaf4a5efb
ここではechoコマンドに渡しているけれど、元々はesbuildに渡して駄目だったのでおそらくパイプ(かシェル)が原因
https://gyazo.com/a2da6ce38f3ac5a991427148bb3b5695
$ deno bundle .\test.ts | esbuild --minify
deno自身のパイプ出力がおかしいという説もあるか
+1nishio.icon
denoもPowerShellも詳しくないけど
プログラムがパイプに書き込む時、それはファイル的なものとして開いてwriteしてるはずで、バイト列に変換するのはプログラムの側
ファイル的なものの側にはエンコーディングの情報はないので、環境変数とか設定ファイルとかからエンコーディングを得ていると思う
その設定が実際のシェルのエンコーディングとあっていないのではないか
しらんけど()
deno bundle .\test.ts単体であれば問題なく出力される
https://gyazo.com/2a032bb63491838544d2cbf59efc6348
code:OutputEncoding
Preamble :
BodyName : utf-8
EncodingName : Unicode (UTF-8)
HeaderName : utf-8
WebName : utf-8
WindowsCodePage : 1200
IsBrowserDisplay : True
IsBrowserSave : True
IsMailNewsDisplay : True
IsMailNewsSave : True
IsSingleByte : False
EncoderFallback : System.Text.EncoderReplacementFallback
DecoderFallback : System.Text.DecoderReplacementFallback
IsReadOnly : True
CodePage : 65001
code:PSVersionTable
Name Value
---- -----
PSVersion 7.3.1
PSEdition Core
GitCommitId 7.3.1
OS Microsoft Windows 10.0.22000
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
ちなみに、PSVersion 5.1.22000.1335でも同様の現象が発生した
もうちょっと仕様を調べてみよう
読んでいるページ
自分の方でできそうなことが無かったので、denoとesbuildを分けて2行で実行するようにしたMijinko_SD.icon