0
私の問題は、フォームにPOSTを送信すると、それらが間違った文字だということです。HttpWebResponseとエンコーディング(奇妙な文字)
は、私は、拡張ASCII送信:私は、POST後
█████████
を得る:
- 「A-A-「â - "â-â-â-â-â-â-
マイコード:
req = (HttpWebRequest)HttpWebRequest.Create("http://forum.com/);
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705;)";
req.Method = "POST";
req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
req.Headers.Add("Accept-Language: en-us,en;q=0.5");
req.Headers.Add("Accept-Encoding: gzip,deflate");
req.Headers.Add("Accept-Charset: ISO-8859-1;q=0.7,*;q=0.7");
req.KeepAlive = true;
req.Headers.Add("Keep-Alive: 300");
req.Referer = "http://www.google.com/";
req.ContentType = "application/x-www-form-urlencoded";
req.CookieContainer = _cookieJar;
req.ServicePoint.Expect100Continue = false;
byte[] bytedata =
Encoding.GetEncoding("iso-8859-1").GetBytes("subject=" + HttpUtility.UrlEncode(subject.Replace("_", " ")) +
"&description=" + HttpUtility.UrlEncode(description));
Stream requestStream = req.GetRequestStream();
requestStream.Write(bytedata, 0, bytedata.Length);
requestStream.Close();
try
{
response = (HttpWebResponse)req.GetResponse();
}
catch (Exception ex)
{
MessageBox.Show("oh noes...");
}
break;
オンサイトでのエンコーディングはISO-8859-1です。
をあなたは変な文字を取得し、「ポストの後」と言います。サーバーがそのように文字を解釈することを意味しますか?あるいは、クライアントが応答を読むと、奇妙な文字が得られます。 'bytedata'配列を調べて、送信しているバイトがISO-8859-1であることを確認しましたか?あなたが受け取っていると言っているのは、私にとってUTF-8のようなものです。 。 。 –
別の例があります。私はこのような文字列を持っています:█████████&私は拡張ASCIIを嫌い...そして、私はそのテキストをエンコードするためにHttpUtility.UrlEncodeを使います。私はこのようになる:%e2%96%88%e2%96%88%e2%96%88%e2%96%88%e2%96%88%e2%96%88%e2%96%88%e2 %96%88%e2%96%88%%26 + I + hate + extended + ASCII ...それは間違っています。 %26%239608%3B%26%239608%3B%26%239608%3B%26%239608%3B%26%239608%3B%26%239608(これはフィドラーとグーグルクロムを使って読みました) %3B%26%239608%3B%26%239608%3B%26%239608%3B +%26 + I + hate + extended + ASCII – carck3r