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 +仇恨+擴展+ ASCII ...這是錯誤的。它應該是這樣的(我使用fiddler和谷歌瀏覽器閱讀它):%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 + +恨擴展+ ASCII – carck3r