PowerShellのcurlコマンドで、UTF-8のデータを読み込んだ際に文字化けする問題の対処方法について解説します。
はじめに・実行環境
前回は、PowerShellでcurlコマンドを使用する方法を書きましたが、UTF-8のデータを取得した際、以下のように文字化けすることが判明しました。
PS C:\Workspace> curl 'http://192.168.66.14:8000/' | Select-Object -Expand Content
{"text":"ãµã³ãã« ã¡ãã»ã¼ã¸\n"}
今回は、文字化けしないようにデータを取得する方法を説明します。
実行環境は以下となります。
- OS:Windows11
- PowerShellのバージョン:5.1.22621.2506
curlコマンドでの接続先は、FastAPI・Uvicornで構築したAPIサーバとします。
取得例1
PowerShell標準のcurlコマンドで取得する方法です。
以下が実行例です。
PS C:\Workspace> curl 'http://192.168.66.14:8000/' | Select-Object{[System.Text.Encoding]::UTF8.GetString([System.Text.Encoding]::GetEncoding("ISO-8859-1").GetBytes($_.Content))} | Format-Table -HideTableHeaders {"text":"サンプル メッセージ\n"}
取得例2
Windows10以降では、PowerShell標準のcurlコマンドの他、Windowsとして提供されている「curl.exe」があります。
こちらを使用することで、UTF-8形式のデータでも文字化けせずに取得することが出来ます。
PS C:\Workspace> curl.exe 'http://192.168.66.14:8000/' {"text":"サンプル メッセージ\n"}
リンク
コメント