確認すること
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);