■94982 / ) |
Web上から読んだXMLがUTF-8の場合に文字化けします |
□投稿者/ c#初心者 (6回)-(2020/06/08(Mon) 23:50:46)
|
分類:[C#]
C#です。
WebAPIを使ってアプリケーションを作っています。
例: response = webClient.UploadString("https://example.com/api", "POST", postData);
responseで取得した文字列はxmlデータなのですが、
xdoc = XDocument.Parse(response);
とすると例外エラーが起きます。 レスポンスデータを確認するとマルチバイト文字が文字化けを起こしており、それがxmlタグに作用してxml文法が崩れていたためパースに失敗していました。
調べましたらC#は内部エンコーディングとしてUTF-16を使っており、これがWebからUTF-8のソースを取得した時に文字化けの原因となることに行き着きました。 前述の通り内部エンコーディングがUTF-16なので、webClient.UploadString()の戻り値の時点で文字化けを起こしており、行き詰まっております。 一般的には日本語の含まれるWeb上から得られるXMLデータはどのようにパースして利用するべきなのでしょうか。
|
|