2016-03-21 16 views
0

:Windows Powershell Dosyaya Çıktı. Garip Karakterler Bu komutu çalıştırmak

echo "foo" > test.txt 

ben test.txt 'de garip sonuçlar elde ederler. Aslında buradaki içeriği doğrudan yığın taşmasına kopyalayamıyorum, ancak dosyanın hex çıktısını göstermem gerekiyor. Hangi FF ve FE ne emin değil bu-

ff fe 66 00 6f 00 6f 00 0d 00 0a 00 

benziyor ama aynı zamanda her karakter arasına NULL yerleştirerek ediyor gibi görünüyor.

Herhangi bir Windows kullanıcısı bana neden böyle olduğunu ve nasıl çözebileceğimi açık bir şekilde yönlendirebilir mi? Sadece dosyaya "foo" yazılmasını istiyorum. Normal Windows Unicode olan UTF-16 LE (küçük endian) için Unicode byte order mark olan Unicode byte order mark ise

cevap

4

.

Dosyanızın içeriği iki bayt BOM, 0x6600 ("f"), 0x6f00 ("o"), 0x6f00 ("o"), 0x0d00 ("` r "veya satır başı), 0x0a00 (") `n" ya da yeni hat)

Dene: anlıyorum

echo "foo" | Out-File -FilePath test.txt -Encoding utf8 
+0

Ah. Yani bunlar boş değil, 16 bit kodlanmış olduğu sürece sadece ekstra uzunluktadır. Teşekkürler! –

+0

Yep. Bunun gibi neler olduğunu onaylayabilirsiniz: [System.Text.Encoding] :: Unicode.GetString ([bayt []] (0xff, 0xfe, 0x66,0x00,0x6f, 0x00,0x6f, 0x00,0x0d, 0x00 , 0x0a, 0x00)) '. –

+2

Ayrıca, ASCII/ANSI/varsayılanını kullanan her şeyi kullanan 'Set-Content 'de kullanılabilir. –

İlgili konular