UTF-8'de F0 A4 AD A2 olarak sunulan Çince bir karakter var. Bu karakter burada tarif edilir: http://en.wikipedia.org/wiki/UTF-8C#: bayttan UTF-8 dize dönüşümü. Neden çalışmıyor?
U + 24B62 F0 A4 AD A2
Ben C# bu kodu çalıştırdığınızda ...
byte[] data = { 0xF0, 0xA4, 0xAD, 0xA2 };
string abc = Encoding.UTF8.GetString(data);
Console.WriteLine("Test: description = {0}", abc);
... Ben çıktısını yönlendirmek metin dosyası ve sonra UTF-8 kodlamasını seçerek notepad.exe ile açın. Çıktının içine girmeyi bekliyorum, ama iki soru işareti (??) aldım.
Bayt dizisi doğru. Benim soru yani ben
olsun, çıktısında
print "\xF0\xA4\xAD\xA2";
: Bu Perl içinde çalışır ben alırım niçin "??" C# yerine "" yerine?
P.S. Bu karakterde özel bir şey yok: Ben de herhangi bir karakter için aynı şeyi aldım (2, 3 veya 4 bayt uzunluğunda).
, "çıktıda" tarafından size bir metin dosyasına çıktı yönlendirmek ve Not Defteri ile açın anlama geliyor? – yoozer8
UTF8 kodlamasını kullanarak dosyaya yazdığınızdan emin olmanız gerekir. Yazmaya kod yazabilir misin? –
Dosyaları kullanmamanın belirli bir nedeni var mı? Konsol ve Unicode ile uğraşmak biraz acı verici. Oleksandr Pshenychnyy cevap (+1) bu durumda size yardımcı olabilir ... –