社区
C#
帖子详情
HttpWebRequest编码问题
yy1987316
2011-01-13 02:52:43
一个接口
用IE访问得到的XML中汉字内容是正常的。
用程序发送HttpWebRequest,得到的XML无论怎样编码,汉字部分都是乱码。
请教高手怎么回事?
...全文
270
15
打赏
收藏
HttpWebRequest编码问题
一个接口 用IE访问得到的XML中汉字内容是正常的。 用程序发送HttpWebRequest,得到的XML无论怎样编码,汉字部分都是乱码。 请教高手怎么回事?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yy1987316
2011-01-13
打赏
举报
回复
问题解决了。多谢各位的热心帮助。
post的参数中如果有汉字,需要url编码转换。
province = HttpUtility.UrlEncode(province, Encoding.GetEncoding("GBK"));
孟子E章
2011-01-13
打赏
举报
回复
StreamReader webRstrem = new StreamReader(resStream, Encoding.Unicode);
StreamReader webRstrem = new StreamReader(resStream, Encoding.BigEndianUnicode);
StreamReader webRstrem = new StreamReader(resStream, System.Text.UnicodeEncoding.GetEncoding("GB2312"));
都试试
yy1987316
2011-01-13
打赏
举报
回复
[Quote=引用 3 楼 wuyq11 的回复:]
看看流有没有被压缩,如Gzip
// 获取网页的HTML内容,指定Encoding
static string GetHtml(string url, Encoding encoding)
{
byte[] buf = new WebClient().DownloadData(url);
if (encoding != null) return encoding.GetS……
[/Quote]
如何看流是否被压缩。英文部分是没有问题的,只有汉字是乱码。
采用GetHtml(url, null);测试,没有解决问题...
yy1987316
2011-01-13
打赏
举报
回复
[Quote=引用 5 楼 net_lover 的回复:]
你还可以
XmlDocument d = new XmlDocument();
d.Load("http://xxx/x.xml");
保证不乱
[/Quote]
接口我不太懂,我是发一个POST请求过去,然后按照响应接受到的,没有XML地址
孟子E章
2011-01-13
打赏
举报
回复
那就
XmlDocument d = new XmlDocument();
d.Load("http://xxx/x.xml");
吧
然后
d.OuterXml得到xml的全部内容
yy1987316
2011-01-13
打赏
举报
回复
[Quote=引用 4 楼 net_lover 的回复:]
StreamReader webRstrem = new StreamReader(resStream, Encoding.GetEncoding("utf-8"));
StreamReader webRstrem = new StreamReader(resStream, Encoding.GetEncoding("GB2312"));
试试就知道了
[/Quote]
各种都试过了,还是乱码
yy1987316
2011-01-13
打赏
举报
回复
[Quote=引用 8 楼 net_lover 的回复:]
你的xml地址我可以访问吗
[/Quote]
不行,是内网的
孟子E章
2011-01-13
打赏
举报
回复
你的xml地址我可以访问吗
yy1987316
2011-01-13
打赏
举报
回复
[Quote=引用 2 楼 lovezhizi 的回复:]
用HttpWebResponse接受之后 要指定他的编码 默认是utf-8
Stream resStream = MyResponse.GetResponseStream();
StreamReader webRstrem = new StreamReader(resStream, Encoding.GetEncoding("utf-8"));
[/Quote]
试过各种编码了,不管用
yy1987316
2011-01-13
打赏
举报
回复
[Quote=引用 1 楼 whowhen21 的回复:]
你打开页面看看页面编码是什么。
如果utf-8的话,你去到的也要用utf-8来解码~~推之....
*************************************************
本内容使用CSDN小秘书回复
每天回帖即可得10分可用分!
*************************************************
[/Quote]
页面的编码选项是黑的(不可选),指定的编码是Unicode,但我用Unicode编码读的时候,不仅中文部分,整个XML都是乱码了,何解?
孟子E章
2011-01-13
打赏
举报
回复
你还可以
XmlDocument d = new XmlDocument();
d.Load("http://xxx/x.xml");
保证不乱
孟子E章
2011-01-13
打赏
举报
回复
StreamReader webRstrem = new StreamReader(resStream, Encoding.GetEncoding("utf-8"));
StreamReader webRstrem = new StreamReader(resStream, Encoding.GetEncoding("GB2312"));
试试就知道了
wuyq11
2011-01-13
打赏
举报
回复
看看流有没有被压缩,如Gzip
// 获取网页的HTML内容,指定Encoding
static string GetHtml(string url, Encoding encoding)
{
byte[] buf = new WebClient().DownloadData(url);
if (encoding != null) return encoding.GetString(buf);
string html = Encoding.UTF8.GetString(buf);
encoding = GetEncoding(html);
if (encoding == null || encoding == Encoding.UTF8) return html;
return encoding.GetString(buf);
}
// 根据网页的HTML内容提取网页的Encoding
static Encoding GetEncoding(string html)
{
string pattern = @"(?i)\bcharset=(?<charset>[-a-zA-Z_0-9]+)";
string charset = Regex.Match(html, pattern).Groups["charset"].Value;
try { return Encoding.GetEncoding(charset); }
catch (ArgumentException) { return null; }
}
lovezhizi
2011-01-13
打赏
举报
回复
用HttpWebResponse接受之后 要指定他的编码 默认是utf-8
Stream resStream = MyResponse.GetResponseStream();
StreamReader webRstrem = new StreamReader(resStream, Encoding.GetEncoding("utf-8"));
whowhen21
2011-01-13
打赏
举报
回复
你打开页面看看页面编码是什么。
如果utf-8的话,你去到的也要用utf-8来解码~~推之....
*************************************************
本内容使用
CSDN小秘书
回复
每天回帖即可得10分可用分!
*************************************************
wphone WebClient和
HttpWebRequest
在Windows Phone平台上,WebClient和
HttpWebRequest
是两个用于网络数据通信的重要类,它们允许应用程序...项目文件展示了Windows Phone应用的基本结构和资源,而解决
编码
问题
通常涉及代码-behind中的网络请求处理逻辑。
c#
httpwebrequest
调用webservice demo
需要注意的是,在实际开发中,还需要考虑异常处理、安全性等
问题
。此外,随着技术的发展,RESTful服务逐渐成为主流,SOAP服务的使用场景正在减少。但对于某些遗留系统或者特定需求而言,掌握SOAP调用仍然是很有必要...
使用
HttpWebRequest
发送自定义POST请求
如果使用的解码类型与服务器返回的实际
编码
不符,可能会导致乱码
问题
。在实践中,`utf-8`和`gb2312`是最常见的
编码
格式之一,尤其是后者在国内网站中更为普遍。理想情况下,服务器会在HTTP响应头中明确声明其使用的...
C#实现通过
HttpWebRequest
发送POST请求实现网站自动登陆
本文将详细介绍如何使用C#中的`
HttpWebRequest
`来发送POST请求,并实现网站的自动登录。 #### 发送POST请求的基本步骤 1. **创建HttpRequest对象**:首先需要创建一个`
HttpWebRequest
`对象,并设置其URL地址。 2. ...
asp.net 服务端代码以 xml utf-8的格式向指定地址post 数据并接收返回值
HttpWebRequest
UTF-8是一种字符
编码
,能够支持全球大部分字符集,是网络上最常用的字符
编码
。 以下是一个简单的ASP.NET服务端代码示例,展示了如何使用`
HttpWebRequest
`发送XML数据: ```csharp using System; using System.IO; ...
C#
111,110
社区成员
642,557
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章