C # ve utf8_decode

3 Cevap

Bir C # utf8_decode eşdeğer var mı?

3 Cevap

Encoding sınıfını kullanın.

Örneğin:

byte[] bytes = something;
string str = Encoding.UTF8.GetString(bytes);

Evet. Sen kodlama dönüştürmek için System.Text.Encoding sınıfını kullanabilirsiniz.

string source = "Déjà vu";
Encoding unicode = Encoding.Unicode;
// iso-8859-1 <- codepage 28591
Encoding latin1 = Encoding.GetEncoding(28591); 
Byte[] result = Encoding.Convert(unicode, latin1, unicode.GetBytes(s));
// result contains the byte sequence for the latin1 encoded string

edit: ya da sadece

string source = "Déjà vu";
Byte[] latin1 = Encoding.GetEncoding(28591).GetBytes(source);

string (String) her zaman kodlanmış unicode olduğunu, yani geri dize bayt dizisi dönüştürmek if (Encoding.GetString()) veri tekrar tekrar utf-16 codepoints olarak saklanır.

Lütfen giriş burada bir dize muhtemelen işe bir yöntem ise (sizin itibaren wester avrupa varsayarak :)

public string Utf8Decode(string inputDate)
{
    return Encoding.GetEncoding("iso-8859-1").GetString(Encoding.UTF8.GetBytes(inputDate));
}

InputData mevcut kodlama latin1 değilse tabii, doğru kodlama için "iso-8859-1" olarak değiştirin.