C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 164 を表示中)
■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データはどのようにパースして利用するべきなのでしょうか。
返信 編集キー/


管理者用

- Child Tree -