[英]How to decode a utf string in c#
我一直在嘗試解碼以下字符串:
Crédit
在c#中,使用以下代碼:
Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf8 = Encoding.UTF8;
string msg = iso.GetString(utf8.GetBytes(@"Crédit"));
這產生了:
Crédit
我在網上看了http://jeppesn.dk/utf-8.html ,這是正確的utf 8,應該產生:
Crédit
有人可以指出我要去哪里了嗎?
謝謝
應該和Windows-1252相反,而不是ISO-8859-1。 根據上下文的不同,人們通常說Windows-1252時使用的是Latin-1或ISO-8859-1,但是當出現諸如€
字符時,實際上使用ISO-8859-1會失敗,因為它首先貼錯了標簽。 當將ISO-8859-1指定為編碼時,甚至瀏覽器也使用Windows-1252。
Encoding w1252 = Encoding.GetEncoding(1252);
Encoding utf8 = Encoding.UTF8;
string msg = utf8.GetString(w1252.GetBytes(@"Crédit"));
基本上,您正在嘗試做沒有意義的事情。 你幾乎從來沒有1應該是一個解釋編碼的輸出作為輸入到另一個編碼。 這就像在說:“假設我將此圖像另存為gif ...然后使用jpeg加載器加載該文件...它是什么樣的?”
我懷疑如果您使用:
// Just an example: don't actually do this.
string msg = utf8.GetString(iso.GetBytes(@"Crédit"));
...它會做您想要的,但是您根本不應該這樣做 。
現在,您真正的投入是什么(以什么形式),您想達到什么目的?
1如果這樣做,通常是因為其他人已經做錯了事,或者某處存在配置問題。 如果您發現自己正在執行此操作,則應非常仔細地考慮是否應該真正執行此操作,或者您是否只是在解決應該以不同方式解決的其他問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.