是否可以通过正确的编码从Web响应获取数据 [英] Is it possible to get data from web response in a right encoding
本文介绍了是否可以通过正确的编码从Web响应获取数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
{
使用(var reader = new StreamReader(response.GetResponseStream()))
{
string tmpStreamData = string.Empty;
while(!reader.EndOfStream)
{
while(reader.Peek()> -1)
{
tmpStreamData + =(char)reader.Read ();
}
}
MessageBox.Show(tmpStreamData);
}
}
有时我会在tmpStreamData中找到 符号。可以避免这种情况并以可读格式获取数据?
解决方案
/获取HTTP响应。如果这不是HTTP响应,您需要自己知道编码。
using(HttpWebResponse response =(HttpWebResponse)webRequest.GetResponse())
{
//如果不是HTTP响应,那么response.CharacterSet必须被预定义的编码替代,例如UTF-8。
using(var reader = new StreamReader(response.GetResponseStream(),Encoding.GetEncoding(response.CharacterSet)))
{
//读取整个流到字符串。
string tmpStreamData = reader.ReadToEnd();
MessageBox.Show(tmpStreamData);
}
}
using (WebResponse response = webRequest.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
string tmpStreamData = string.Empty;
while (!reader.EndOfStream)
{
while (reader.Peek() > -1)
{
tmpStreamData += (char)reader.Read();
}
}
MessageBox.Show(tmpStreamData);
}
}
Sometimes I get � symbols in the "tmpStreamData". Is it possible to avoid such situations and get data in the readable format?
解决方案
// Get HTTP response. If this is not an HTTP response, you need to know the encoding yourself.
using (HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse())
{
// If not an HTTP response, then response.CharacterSet must be replaced by a predefined encoding, e.g. UTF-8.
using (var reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(response.CharacterSet)))
{
// Read whole stream to string.
string tmpStreamData = reader.ReadToEnd();
MessageBox.Show(tmpStreamData);
}
}
这篇关于是否可以通过正确的编码从Web响应获取数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文