用HttpWebRequest POST方式向JAVA编写的网页传递数据为什么总是乱码?

孙月魂 2015-07-06 03:26:13
他说他的编码是utf8,后来又说是ISO-8859-1,但是不管我用utf8、gb2312还是其他的编码方式传递过去的中文都是乱码。
他的网页是.do的后缀名,传输格式是json。
这是我的发送代码
myEncoding = Encoding.GetEncoding("utf-8"); 
string param = "";

if (!string.IsNullOrEmpty(cutWaterArea))
{
param += "," + "\"cutWaterArea\":\"" + HttpUtility.UrlEncode(cutWaterArea, myEncoding) + "\"";
}
if (!string.IsNullOrEmpty(temporaryId))
{
param += "," + "\"temporaryId\":\"" + temporaryId + "\"";
}
if (!string.IsNullOrEmpty(cutWaterTime))
{
param += "," + "\"cutWaterTime\":\"" + cutWaterTime + "\"";
}
if (!string.IsNullOrEmpty(cutWaterType))
{
param += "," + "\"cutWaterType\":\"" + HttpUtility.UrlEncode(cutWaterType, myEncoding) + "\"";
}
if (!string.IsNullOrEmpty(topRow))
{
param += "," + "\"topRow\":\"" + HttpUtility.UrlEncode(topRow, myEncoding) + "\"";
}
if (!string.IsNullOrEmpty(recoverTime))
{
param += "," + "\"recoverTime\":\"" + recoverTime + "\"";
}
if (!string.IsNullOrEmpty(detail))
{
param += "," + "\"detail\":\"" + HttpUtility.UrlEncode(detail, myEncoding) + "\"";
}


//myEncoding = Encoding.GetEncoding("ISO-8859-1");

//string param = "";

//if (!string.IsNullOrEmpty(cutWaterArea))
//{
// param += "," + "\"cutWaterArea\":" + cutWaterArea;
//}
//if (!string.IsNullOrEmpty(temporaryId))
//{
// param += "," + "\"temporaryId\":" + temporaryId;
//}
//if (!string.IsNullOrEmpty(cutWaterTime))
//{
// param += "," + "\"cutWaterTime\":" + cutWaterTime;
//}
//if (!string.IsNullOrEmpty(cutWaterType))
//{
// param += "," + "\"cutWaterType\":" + cutWaterType;
//}
//if (!string.IsNullOrEmpty(topRow))
//{
// param += "," + "\"topRow\":" + topRow;
//}
//if (!string.IsNullOrEmpty(recoverTime))
//{
// param += "," + "\"recoverTime\":" + recoverTime;
//}
//if (!string.IsNullOrEmpty(detail))
//{
// param += "," + "\"detail\":" + detail;
//}


param = "{" + param.TrimStart(',') + "}";


byte[] bs = Encoding.ASCII.GetBytes(param); //将参数转化为assic码

if (sffs == "0")
{
url = "http://xx/xx/xx.do";
}
else
{
url = "http://xx/xx/xx.do ";
}

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);

req.Method = "POST";

req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";

req.ContentLength = bs.Length;


using (Stream reqStream = req.GetRequestStream())
{

reqStream.Write(bs, 0, bs.Length);

}

using (WebResponse wr = req.GetResponse())
{

//在这里对接收到的页面内容进行处理
Stream responseStream = wr.GetResponseStream();
StreamReader streamReader = new StreamReader(responseStream, Encoding.UTF8);
string html = streamReader.ReadToEnd();

if (PublicMethod.NeedLog)
PublicMethod.WriteStringToFile(System.Threading.Thread.GetDomain().BaseDirectory + "\\WinServer_Yyxt_log.txt", html);

}



他说他用下面这段代码测试是正常的,显示的中文不是乱码
...全文
362 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
编程有钱人了 2015-07-07
  • 打赏
  • 举报
回复
LZ接收端 根本没用UTF-8解码,所以是乱码,然他好好学习下如何解码
孙月魂 2015-07-06
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
[quote=引用 楼主 speak13579 的回复:] 他说他用下面这段代码测试是正常的,显示的中文不是乱码
贴这些无意义,还是要求他明确地对 utf8 编码解码。你只需要用 utf8 编码方式发送消息,不用跟着对方变来变去。因为对方不知道如何解码(连他自己的开发环境默认的编码解码方式都不知道),那么不靠谱的结果就出现在对方的程序中。 如果对方给你贴代码,你应该让对方把他收到消息然后进行解码的代码贴出来。 它贴的那个倒数第二行代码,要么就是它自己都看不懂,要么就是故意蒙你,所以只弄了一个标题党在那里(欺负你不知道追究其内部细节)。当你告诉对方你用 utf8 和其它编码都做了测试发消息时,他完全不知道他们自己的程序该在哪一行应该根据编码不同而做出调整,不然它就应该指出真正的、具体的代码了。 这可以作为证据,证明你这边懂编码的概念,问题出处在了对方程序员不懂编码的概念,所以对方无法贴出合适的代码。[/quote] 过奖了~其实我也是菜鸟。。。能问下post数据是不是最后都要转成ascii码?如果不是好像就会少转一部分内容,这是为什么了?
  • 打赏
  • 举报
回复
引用 楼主 speak13579 的回复:
他说他用下面这段代码测试是正常的,显示的中文不是乱码
贴这些无意义,还是要求他明确地对 utf8 编码解码。你只需要用 utf8 编码方式发送消息,不用跟着对方变来变去。因为对方不知道如何解码(连他自己的开发环境默认的编码解码方式都不知道),那么不靠谱的结果就出现在对方的程序中。 如果对方给你贴代码,你应该让对方把他收到消息然后进行解码的代码贴出来。 它贴的那个倒数第二行代码,要么就是它自己都看不懂,要么就是故意蒙你,所以只弄了一个标题党在那里(欺负你不知道追究其内部细节)。当你告诉对方你用 utf8 和其它编码都做了测试发消息时,他完全不知道他们自己的程序该在哪一行应该根据编码不同而做出调整,不然它就应该指出真正的、具体的代码了。 这可以作为证据,证明你这边懂编码的概念,问题出处在了对方程序员不懂编码的概念,所以对方无法贴出合适的代码。
孙月魂 2015-07-06
  • 打赏
  • 举报
回复
引用 3 楼 starfd 的回复:
http://bbs.csdn.net/topics/370166789 也看不出来这个帖子是解决了还是没解决
发送的数据是不是最后都要转成ascii码?怎么好像用其他的就会报错了?
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/370166789 也看不出来这个帖子是解决了还是没解决
孙月魂 2015-07-06
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
你还没实验ANSI……
什么意思?
  • 打赏
  • 举报
回复
你还没实验ANSI……

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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