PowerShellはBOM無テキストファイルの読み書きは非常に苦手だ。UTF8BOM無のJSONファイルを読み込ませたくて少し苦労した。
UTF8BOM付を読み込ませるにはよく紹介されているこんな書き方になる。
Get-Content -Path $filepath -Encoding UTF8 | ConvertFrom-Json
いっぽうでUTF8BOM無を読み込ませるならばこんな書き方になった。Byte配列で読み込ませてUTF8でデコードする。
Get-Content -Path $filepath -Encoding Byte -Raw | %{[Text.Encoding]::UTF8.GetString($_)} | ConvertFrom-Json
UTF8BOM無の書き込みはJSONではないが下記ページの例が簡潔。UTF8でエンコードしてByte配列で書き込ませる。
GitHub:PowerShellでBOM無しUTF8を書くサンプル
UTF8BOM付を読み込ませるにはよく紹介されているこんな書き方になる。
Get-Content -Path $filepath -Encoding UTF8 | ConvertFrom-Json
いっぽうでUTF8BOM無を読み込ませるならばこんな書き方になった。Byte配列で読み込ませてUTF8でデコードする。
Get-Content -Path $filepath -Encoding Byte -Raw | %{[Text.Encoding]::UTF8.GetString($_)} | ConvertFrom-Json
UTF8BOM無の書き込みはJSONではないが下記ページの例が簡潔。UTF8でエンコードしてByte配列で書き込ませる。
GitHub:PowerShellでBOM無しUTF8を書くサンプル
※コメント投稿者のブログIDはブログ作成者のみに通知されます