为什么中文字符是乱码?

royrandy 2006-04-27 12:14:23
其中strSend包含中文字符,但是发送上去的时候发送的内容中的中文就变成乱码了,该怎么解决呢?
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(strSend);
HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
Stream resStream=HttpWResp.GetResponseStream();
string strXml="";
if (resStream!=null)
{
StreamReader sr =new StreamReader(resStream ,System.Text.Encoding.GetEncoding("GB2312"));
strXml =sr.ReadToEnd();
sr.Close();
}
HttpWResp.Close();
return strXml;
...全文
360 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
royrandy 2006-04-28
  • 打赏
  • 举报
回复
问题我已解决,谢谢大家帮忙
HAVENT 2006-04-28
  • 打赏
  • 举报
回复
不是吧,就是一个简单的编码问题,将UrlEncode解码就行了,你能看到对应的解码方法

System.Web.HttpUtility.UrlDecode(要解码的字符串)
royrandy 2006-04-28
  • 打赏
  • 举报
回复
问题仍为解决
gsk99 2006-04-27
  • 打赏
  • 举报
回复
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(strSend);
HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
Stream resStream=HttpWResp.GetResponseStream();
string strXml="";
if (resStream!=null)
{
StreamReader sr =new StreamReader(resStream ,System.Text.Encoding.GetEncoding("utf-8"));
strXml =sr.ReadToEnd();
sr.Close();
}
HttpWResp.Close();
return strXml;
zhaoliang_chen 2006-04-27
  • 打赏
  • 举报
回复
GetEncoding("utf-8")
  • 打赏
  • 举报
回复
把文件用记事本打开,保存问U8编码 OK
hainang1234 2006-04-27
  • 打赏
  • 举报
回复
System.Web.HttpUtility.UrlEncode
edwardfay 2006-04-27
  • 打赏
  • 举报
回复
是要生成XML文件吗? 那xml第一行
<?xml version="1.0" encoding="gb2312" ?>
royrandy 2006-04-27
  • 打赏
  • 举报
回复
我现在改成这样,还是同样的问题

WebRequest webrequest = WebRequest.Create(strSend);
webrequest.Method = "POST";
webrequest.Timeout = 30000;
webrequest.ContentType="application/x-www-form-urlencoded";
byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(strSend);
webrequest.ContentLength=bytes.GetLength(0);
Stream oStreamOut = webrequest.GetRequestStream();
oStreamOut.Write(bytes,0,bytes.GetLength(0));
oStreamOut.Close();
WebResponse myWebResponse = webrequest.GetResponse();
Stream streamResponse=myWebResponse.GetResponseStream();
Encoding encode = Encoding.GetEncoding("GB2312");
StreamReader streamRead = new StreamReader(streamResponse, encode);
Char[] readBuff = new Char[256];
int count = streamRead.Read( readBuff, 0, 256 );
string strXml="";
while (count > 0)
{
String outputData = new String(readBuff, 0, count);
strXml+=outputData;
count = streamRead.Read(readBuff, 0, 256);
}
// Close the Stream object.
streamResponse.Close();
streamRead.Close();
// Release the HttpWebResponse Resource.
myWebResponse.Close();
return strXml;
royrandy 2006-04-27
  • 打赏
  • 举报
回复
web.config里我就是这样设置的
fj_shaodw 2006-04-27
  • 打赏
  • 举报
回复
<globalization requestEncoding="gb2312" responseEncoding="gb2312" />
web.config里加上。
royrandy 2006-04-27
  • 打赏
  • 举报
回复
To:gsk99(ZJUT)
使用你的方法后,数据只能获取到一部分,遇到中文字符就不获取了。
StreamReader sr =new StreamReader(resStream ,System.Text.Encoding.GetEncoding("utf-8"));

62,071

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧