Я получил эту строку, возвращаемую через HTTP Post от URL в C# приложения, который содержит некоторые китайский символ, например:Преобразование строки в кодировке utf8 в юникод в C#
Gelatos® Colors Gift Setä¸æ–‡
проблема, я хочу преобразовать его в
Gelatos® Colors Gift Set中文
Обе строки на самом деле идентичны, но кодируются по-разному. Я понимаю, что на C# все есть UTF16. Я пробовал читать alof сообщений здесь относительно перехода от одной кодировки к другой, но не повезло.
Надеюсь, кто-то может помочь.
Вот 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)
%>
вывод из Интернета правильный. Но я просто задавался вопросом, сделаны ли какие-то изменения в потоке http в приложении C#.
спасибо.
Какие функции преобразования вы пытались, а что не так? – shfire
Yip: Не могли бы вы показать нам код, отвечающий за HTTP POST, который генерирует строку? – Douglas