忍者ブログ

えいりあす

C# の WebClient クラスを使ったときの 文字化け

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

C# の WebClient クラスを使ったときの 文字化け

WebClientを使っていた時に日本語をPOSTすると
どうしても文字化けを起こしてしまったので、その対策をメモ



確認すること

1.Stringに格納した文字列をそのまま送信してないか

Stringの文字コードはUnicodeらしいです

2.POSTする際にUploadValuesメソッドを使っていないか

UploadValuesメソッドで送信されるデータは
必ずUTF-8でURLエンコードされるらしいです。
UTF-8以外の文字コードを使いたい場合はUploadDataメソッドを使います

3.文字コードが正しく変換できているか

特に何もなし

以上を踏まえての例

(文字コードはeuc-jpで送信)

WebClient client = new WebClient();
client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");

system.Text.Encoding encodeEuc = Encoding.GetEncoding("euc-jp");

// 送信するパラメータをeuc-jpで変換する
string param1 = "hoge=" + System.Web.HttpUtility.UrlEncode("hoge", encodeEuc);
string param2 = "fuga=" + System.Web.HttpUtility.UrlEncode("fuga", encodeEuc);
byte[] postData = encodeEuc.GetBytes(param1 + "&" + param2);

// euc-jpに変換した文字列の送信(hoge=hoge&fuga=fuga)
string url = "http://wasuregasa.3rin.net/";
byte[] response = client.UploadData(url, postData);

拍手[0回]

コメント

プロフィール

HN:
忘れ傘
性別:
男性
自己紹介:
Linux初心者
知識が浅すぎるので勉強中
あっぷろーだ:wasuregasa
ついったー:@__TIMESTAMP__

P R

最新コメント

[03/27 NONAME]
[03/26 ぽん]
[03/26 ぽん]
[03/17 ぽん]
[03/05 通りすがりのR]