json.netを使用して、サーバーからjson形式で送信されたデータを読み取っています。サーバーは、jsonでutf-8として送信するすべての文字列型データをエンコードします。 C#でデータを読み込むようになりましたjson.netから受信したutf8文字列を正しく処理します。
私はこのような何か:私はC#で文字列のデフォルトエンコーディングがUTF-16(ユニコード)であるのに対し、文字列s
は、UTF-8形式になりましたと仮定しstring s = json.Value<string>("data");
を。
文字列をUnicodeに変換するには、これは正しいですか?
byte[] bytes = Encoding.Unicode.GetBytes(s);
string unicode = Encoding.UTF8.GetString(bytes);
私は(私が思う)、その後s
からの生のバイトがUnicodeを取得するには、UTF-8デコーダにそれを渡すことですが、私は正確にEncoding.Unicode.GetBytes
が私を与える、または私がすべきかわからないんだけど、何をしたいです代わりに使用してください。
これを二重解析することはできません。しかし、.NETのすべての文字列はUTF16なので、最初はあなたの文字列に何が間違っていますか? –
文字列がutf-8として受け取られていますが、私は何かをしなければならないと思っていましたが、もしjson.netが自動的にこれを処理するなら、あなたが言うように大丈夫です。 – DaedalusAlpha
私はそれを交換する必要があると思います。 'Encoding.UTF8.GetBytes(s)'、そして 'Encoding.Unicode.GetString(bytes)'です。この方法で、UTF8をUnicodeに変換します。 –