Muni Bus

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

【PowerShell】Out-Fileコマンドレットでデフォルトで出力されるファイルの文字コードと改行コード

試しに以下を実行してみる。

PS > $lines = "ABC", "あいう", "えお"
PS > $odir = (gl).Path
PS > $lines | Out-File ($odir + "\temp.txt")
PS > Format-Hex .\temp.txt
           パス: ○○○\temp.txt
           00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000   FF FE 41 00 42 00 43 00 0D 00 0A 00 42 30 44 30  .þA.B.C.....B0D0
00000010   46 30 0D 00 0A 00 48 30 4A 30 0D 00 0A 00        F0....H0J0....

ASCIIでは1バイト英数字であった文字(AやB)が2バイトで格納されており、明らかに下位バイトが先に格納されている。また「あ」は0x3042であり、それ以前にバイトオーダーマーク(BOM)としてFFFEが付いている。よって、このファイルはUTF-16のBOM有りのリトルエンディアンであることがわかる。

改行コードは9~12バイト目などを見てのとおり、復帰+改行(CR+LF,0x0d+0x0a)であり、同様に2バイトで格納されて、下位バイトが先に格納されていることから同様にリトルエンディアンであることがわかる。