この質問をしたり、別のコードを試しても何日間かを過ごしても、動作させることができません。' u0 ***'を含むUTF-8テキストをwindows-12 **コードページに変換する方法
私はHttpWebRequest
のWeb応答テキストをUTF-8で持っています。非ラテン文字は '\ u0 ***'のように表示されます。
StreamReader
のエンコードパラメータを設定して、Encoding.GetEncoding(1251)
、Encoding.Convert
、UTF8Encoding
の文字列をさまざまな方法で変換しようとしました。結果は、出力では非ラテン文字に対しても '\ u0 ***'と同じままです。
本当に何が間違っているかわかりません。
EDIT
私は、Web応答に最小限の作業コードを提供しています。
UTF8Encoding objUtf = new UTF8Encoding();
HttpWebResponse ApiResponse = (HttpWebResponse)ApiRequest.GetResponse();
var objEncoding = Encoding.UTF8;
var objResponseReader = new StreamReader(ApiResponse.GetResponseStream(), objEncoding);
string strResponseText = Encoding.ASCII.GetString(Encoding.Convert(objUtf, Encoding.ASCII, objUtf.GetBytes(objResponseReader.ReadToEnd())));
objResponseReader.Close();
デバッガとビューに表示されている内容。
{"result":"success","product_id":["4","1","2","3","6","5","11","12","10","21","20"],"name":["\u0424\u0438\u043b\u0430\u0434\u0435\u043b\u044c\u0444\u0438\u044f \u0440\u043e\u043b\u043b","\u041a\u0430\u043d\u0430\u0434\u0430 \u0440\u043e\u043b\u043b","\u041a\u0430\u043f\u043f\u0430 \u0440\u043e\u043b\u043b","\u0421\u044f\u043a\u0435 \u0440\u043e\u043b\u043b","\u041c\u0430\u0440\u0433\u0430\u0440\u0438\u0442\u0430","\u0412\u0435\u0433\u0435\u0442\u0430\u0440\u0438\u0430\u043d\u0441\u043a\u0430\u044f","Kozel","\u0411\u0430\u043b\u0442\u0438\u043a\u0430 7","Coca-cola","\u0421\u043e\u0435\u0432\u044b\u0439 \u0441\u043e\u0443\u0441","\u041f\u0430\u043b\u043e\u0447\u043a\u0438"],"price":["150","240","60","90","310","420","100","80","50","0","0"]}
SOLUTION
あなたは、プレーンテキストを使用している場合は、次のコードを使用することができます。
Regex objExpression = new Regex(@"\\[uU]([0-9A-Fa-f]{4})");
string strConverted = objExpression.Replace(strResponseText, match => ((char)Int32.Parse(match.Value.Substring(2), NumberStyles.HexNumber)).ToString());
あなたがJSON
データ、JavaScriptSerializer
で作業をしている場合は、全体の仕事をしていません。
ありがとうございました。申し訳ありませんが、私は本当にASP.NETプログラミングの初心者です。
「表示」とはどういう意味ですか、どのように表示されますか?なぜあなたは別のコードページを使用しようとしていますか? –
問題を示す[mcve]を提供してください。 ASCII以外の文字がないように思えますが、文字通り文字列に '\ uXXXX'があります。エンコードに手を出せずに、それらを参照する文字に魔法に変換します。 –
@Charles Mager、私はそれが本当にそうだと信じ始めました。 –