Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【PowerShell】いろいろな文字コードのテキストファイルを簡単に作成する

パイプラインを使用してOut-Fileコマンドレットにテキストを与え、-Encodingオプションに文字コードを指定してファイルに書き込めばよい。以下はそれぞれ文字コードShift_JISUTF-8UTF-16にしてファイルに書き込んだ例。

PS > "石見舞菜香かわいい" | Out-File -Encoding default Shift_JIS.txt
PS > "石見舞菜香かわいい" | Out-File -Encoding utf8 UTF-8wb.txt
PS > "石見舞菜香かわいい" | Out-File -Encoding unicode UTF-16lewb.txt

Out-Fileコマンドレットはファイルへ書き込む際の改行コードはCR+LFになる。また、UTF-8UTF-16もBOMが付けられるため、ファイルサイズは上の順番に2*9+2=20バイト、3+3*9+2=32バイト、2+2*9+4=24バイト(ASCIIも2バイト)になる。unicodeと指定するとUTF-16のリトルエンディアン(BOM付き)になる。

PS > Get-ChildItem *.txt | Select-Object Name, Length
Name           Length
----           ------
Shift_JIS.txt      20
UTF-16lewb.txt     24
UTF-8wb.txt        32
PS > Format-Hex Shift_JIS.txt
           パス: ○○○\Shift_JIS.txt
           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000   90 CE 8C A9 95 91 8D D8 8D 81 82 A9 82 ED 82 A2  Ωةí¢
00000010   82 A2 0D 0A                                      ¢..
PS > Format-Hex UTF-8wb.txt
           パス: ○○○\UTF-8wb.txt
           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000   EF BB BF E7 9F B3 E8 A6 8B E8 88 9E E8 8F 9C E9  ç³è¦èèé
00000010   A6 99 E3 81 8B E3 82 8F E3 81 84 E3 81 84 0D 0A  ¦ãããã..
PS > Format-Hex UTF-16lewb.txt
           パス: ○○○\UTF-16lewb.txt
           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000   FF FE F3 77 8B 89 1E 82 DC 83 99 99 4B 30 8F 30  .þów.ÜK00
00000010   44 30 44 30 0D 00 0A 00                          D0D0....