SORU
27 Aralık 2012, PERŞEMBE


Nasıl C UTF-8 dize dönüştürmek miyim#?

Üçüncü parti bir uygulama aldığım bir dize ve bir dili doğru C kullanarak görüntülemek istiyorum# benim Windows Yüzey.

Yanlış kodlama nedeniyle, benim bir parça ip İspanyolca bu gibi görünüyor:

AcciÃ3n

bu gibi görünmelidir ise:

Acción

Yanıta göre bu soru: How to know string encoding in C#, alıyorum kodlama UTF-8 zaten geliyor olmalı, ama Kodlama hakkında bilgi edinin.Varsayılan (muhtemelen ANSI?).

Deniyorum dönüşüm bu dizeye gerçek UTF-8, ama sorunları olan tek bir alt Kodlama sınıfı (UTF8 ve Unicode özellikleri), muhtemelen çünkü ben sınırlı yüzey windows API.

İnternette bulduğum bazı parçacıklar denedim, ama hiçbiri başarılı şimdiye kadar Doğu Dilleri (örneğin Kore) için kanıtlamıştır. Bir örnek aşağıdaki gibidir:

var utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(myString);
myString= utf8.GetString(utfBytes, 0, utfBytes.Length);     

Ben de bayt dizisine dize ayıklamak ve sonra UTF8 kullanarak denedim.GetString:

byte[] myByteArray = new byte[myString.Length];
for (int ix = 0; ix < myString.Length;   ix)
{
    char ch = myString[ix];
    myByteArray[ix] = (byte) ch;
}

myString = Encoding.UTF8.GetString(myByteArray, 0, myString.Length);

Deneyebilirim o başka fikri olan var mı?

CEVAP
27 Aralık 2012, PERŞEMBE


Dizesinde Encoding.Default gibi geliyor bildiğiniz gibi sadece kullanabilirsiniz:

byte[] bytes = Encoding.Default.GetBytes(myString);
myString = Encoding.UTF8.GetString(bytes);

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • Kevin Bruckert

    Kevin Brucke

    30 Aralık 2006
  • lane182videos

    lane182video

    6 EKİM 2011

İLGİLİ SORU / CEVAPLAR