chcp 10000
echo hell☺ w☻rld♥! >> "UTF-16 file☺☻♥♦♣♠"
Tamam, doğru dosya oluşturur, ancak içerikte unicode karakterler yerine soru işaretleri vardır. Nasıl düzeltilir?
chcp 10000
echo hell☺ w☻rld♥! >> "UTF-16 file☺☻♥♦♣♠"
Tamam, doğru dosya oluşturur, ancak içerikte unicode karakterler yerine soru işaretleri vardır. Nasıl düzeltilir?
Yanıtlar:
Kodunuz doğru değil, çünkü 10000 bir Unicode kod sayfası değil. Görmek Kod Sayfa Tanımlayıcıları .
10000 macintosh MAC Roman; Western European (Mac)
...
1200 utf-16 Unicode UTF-16, little endian byte order (BMP of ISO 10646); available only to managed applications
1201 unicodeFFFE Unicode UTF-16, big endian byte order; available only to managed applications
...
12000 utf-32 Unicode UTF-32, little endian byte order; available only to managed applications
12001 utf-32BE Unicode UTF-32, big endian byte order; available only to managed applications
...
65000 utf-7 Unicode (UTF-7)
65001 utf-8 Unicode (UTF-8)
Neden olduğundan emin değilim, ancak Komut İstemi bunları yapıştırıldığında kontrol karakterleri olarak yorumluyor, özellikle SOH (Başlık Başlığı, 01), STX (Metin Başlangıcı, 02) ve ETX (Metin Sonu, 03).
Artı tarafta, PowerShell bunu doğru bir şekilde ele alıyor gibi görünüyor. Notepad ++, ortaya çıkan metin dosyasını otomatik olarak "UCS-2 Little Endian" olarak açtı ve doğru karakterleri görüntüler.
Tamam, UTF-8'in neden benim için çalışmadığını anladım. Varsayılan Raster Yazı Tipleri Unicode desteği içermediğinden yazı tipi Lucida Konsoluna ayarlanmalıdır.
available only to managed applications
. UTF-8 seçeneğinden bu yana, uygun Unicode desteği için PowerShell kullanın ( 65001
) bu dava için Komut İstemi'nde görünmüyor.
Her ikisi de 65001.txt
ve 1200.txt
aynı dizeyi içerir: абв™
ama farklı kodlamada. Komuta:
chcp 65001 & type 65001.txt
kod sayfasını başarıyla değiştirdi, ancak çöpü görüntüler.
Komuta:
type 1200.txt
doğru karakterleri görüntüler, ancak komut
for /f %A in ('type 1200.txt') do echo %A
görüntüler абвT
.
Bu nedenle cmd.exe, kod sayfası 1200 ile çalışabilir (bazı sınırlarla), kod sayfası 65001 ile tatmin edici bir sonuç alamıyorum.