我有這個字符串通過HTTP POST從URL在C#應用程序返回,包含一些中國字如爲Unicode:轉換爲UTF8編碼的字符串在C#
Gelatos® Colors Gift Setä¸æ–‡
問題是,我想將其轉換爲
Gelatos® Colors Gift Set中文
這兩個字符串實際上都是相同的,但編碼方式不同。我明白在C#中一切都是UTF16。我試過讀過關於從一種編碼轉換到另一種編碼的帖子,但沒有運氣。
希望有人可以幫忙。
這裏的C#代碼:
WebClient wc = new WebClient();
json = wc.DownloadString("http://mysite.com/ext/export.asp");
textBox2.Text = "Receiving orders....";
//convert the string to UTF16
Encoding ascii = Encoding.ASCII;
Encoding unicode = Encoding.Unicode;
Encoding utf8 = Encoding.UTF8;
byte[] asciiBytes = ascii.GetBytes(json);
byte[] utf8Bytes = utf8.GetBytes(json);
byte[] unicodeBytes = Encoding.Convert(utf8, unicode, utf8Bytes);
string sOut = unicode.GetString(unicodeBytes);
System.Windows.Forms.MessageBox.Show(sOut); //doesn't work...
下面是從服務器的代碼:
<%@CodePage = 65001%>
<%option explicit%>
<%
Session.CodePage = 65001
Response.charset ="utf-8"
Session.LCID = 1033 'en-US
..... 的Response.Write(strJSON)
%>
的網絡輸出是正確的。但我只是想知道是否對C#應用程序的http流進行了一些更改。
謝謝。
你試過了什麼樣的轉換函數,怎麼回事? – shfire
Yip:你能告訴我們負責生成字符串的HTTP POST的代碼嗎? – Douglas