【求教】WebRequest HTTP提交乱码的问题。

问题描述

目前网站使用"utf-8"编码,我使用WinForm的WebRequest在POST数据的时候,已经对需要POST的数据中的带中文的值先使用UTF8进行编码,编码后和服务器一致(之前用Http拦截到POST的数据),但是服务器收到后存进数据库,显示出来的时候就是乱码了。我在对方的网站上直接填写的表单后,显示出来的却不会乱码,可能我表达得不清楚,就是说我发送出去前,肯定对数据做了UTF-8的编码,且可以确定如果通过IE来填写表单并提交,IE也是对其中的中文进行UTF8编码后再发送给服务器,那么是什么原因可能导致我使用Winform来模拟提交和用IE8提交不同的方式来提交相同的数据,结果对方网站收到的就是乱码而使用IE来提交的时候却不会乱码呢?很纠结。DimpostAsString="verifycode=&loginNameCache="+userName+"&from=&xm="+System.Web.HttpUtility.UrlEncode(xm,System.Text.Encoding.UTF8).ToUpper+"&gender="+sex+"&credentialType=SFZ&credentialNumberCache=&credentialNumber_ajax_res=0&credentialNumber="+credentialNumber+"&nickname="+System.Web.HttpUtility.UrlEncode(xm,System.Text.Encoding.UTF8).ToUpper+"&birthday="+Mid(credentialNumber,7,4)+"-"+Mid(credentialNumber,11,2)+"-"+Mid(credentialNumber,13,2)+"&liveCity1=11&liveCity=160&mobilePhoneCache=&mobilePhone_ajax_res=0&mobilePhone=&needphone=0"这是POST的数据,其中xm这个是中文的。乱码也是这个。

解决方案

解决方案二:
你这string让我看的眼花,,可以使用string.format或者stringbuilder.AppendFormat....你用默认编码试试,还有,你这个是不是URL,URL可以用UrlEncode()
解决方案三:
POST中文要加码解码的Server.UrlEncode()Server.UrlDecode()方法二:(仅适用于后台传递)设置web.config文件<system.web>......<globalizationrequestEncoding="gb2312"responseEncoding="gb2312"culture="zh-CN"fileEncoding="gb2312"/>......</system.web>
解决方案四:
不是楼上的大哥们,上面这串是POST数据,面数据有使用UrlEncode,只是中文不管用什么来编码,对方收到的都是乱码,只是乱得不一样。GB2312,UTF8,都试过了,而且确认我POSt的数据和通过网页上提交表单所POST的数据是完全一样的。包括编码后都是一样的。怪就怪在这里。
解决方案五:
那你怎么往HttpWebRequest.GetRequestStream()里写的呢?话说,有了WebClient.UploadValues大家还是喜欢用原始的HttpWebRequest哇
解决方案六:
WebClient提供的各种方法都很不错,代码量也少
解决方案七:
使用GBK编码就OK了,我是用了GBK编码解决的
解决方案八:
用web.config就可解决!

时间: 2024-12-21 04:43:10

【求教】WebRequest HTTP提交乱码的问题。的相关文章

IE下Ajax提交乱码的快速解决方法_AJAX相关

哈哈,试了这么多还是encodeURIComponent管用啊!!!! 在汉字的位置加个保护措施:encodeURIComponent(parentid) function loadCity(parentid) { var city = '${hotel.city}'; $.ajax({ url: './listCity.jspx?prov='+ encodeURIComponent(parentid), type: 'GET', dataType: 'JSON', timeout: 5000,

IE下Ajax提交乱码的快速解决方法

哈哈,试了这么多还是encodeURIComponent管用啊!!!! 在汉字的位置加个保护措施:encodeURIComponent(parentid) function loadCity(parentid) { var city = '${hotel.city}'; $.ajax({ url: './listCity.jspx?prov='+ encodeURIComponent(parentid), type: 'GET', dataType: 'JSON', timeout: 5000,

JSP+ MySQL中文乱码问题post提交乱码解决方案

当提交的数据中含有中文(比如变量姓名的值为中文)时,mysql_insert.jsp页面上显示新增的那条记录中的相应中文(姓名的值)乱码   写了两个jsp页面index.jsp和mysql_insert.jsp.数据处理流程为:在浏览器(chrome)上访问index.jsp后在其表 单上输入数据,提交至mysql_insert.jsp,mysql_insert.jsp首先将接收到的数据按变量存入MySQL的html_db数据 库的person_tb中(该表原有部分数据),然后mysql_in

JSP+ MySQL中文乱码问题post提交乱码解决方案_JSP编程

写了两个jsp页面index.jsp和mysql_insert.jsp.数据处理流程为:在浏览器(chrome)上访问index.jsp后在其表单上输入数据,提交至mysql_insert.jsp,mysql_insert.jsp首先将接收到的数据按变量存入MySQL的html_db数据库的person_tb中(该表原有部分数据),然后mysql_insert.jsp再拿出该表中所有数据显示在mysql_insert.jsp页面上. 现在发现,当提交的数据中含有中文(比如变量姓名的值为中文)时,

JSP表单提交乱码

问题描述 Login.jsp代码:<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

跪求大神解决$.ajax提交乱码问题!

问题描述 $.ajax({type:'post',cache:false,data:formData,url:'<%=basePath%>/ykg/saveOperation.action?portFlagsd='+portFlag+'&vpnFlagsd='+vpnFlag+'&openFlagsd='+openFlag+'&vcRegister='+register+'&_arr_IDsa='+_arr_IDs+'&_arr_Paysa='+_arr

asp.net 中文字符串提交乱码的解决方法_实用技巧

调试的时候发现老是提示用户名不存在.于是我在后台直接输出我传递进去的用户名,发现输出来的全部是乱码.看来是编码的问题,于是百度了一下,发现其实只需要一行语句就能轻松搞定了: 在Web.config中的<system.web>节点里添加如下语句: <globalization requestEncoding="GB2312" responseEncoding="GB2312"/> 然后进系统再调试,搞定...

android post方式提交中文数据到服务器乱码问题

问题描述 android post方式提交中文数据到服务器乱码问题 Android端代码 AsyncHttpClient client = new AsyncHttpClient(); //URLEncoder.encode(categoryutf-8""); RequestParams params = new RequestParams(); if(path1!=null){ file1=new File(path1); } if(path2!=null){ file2=new F

java表单提交中文乱码的解决方法_java

本文实例为大家分享了java表单提交中文乱码的解决方法,供大家参考,具体内容如下 主页index.xml <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>servlet演示</title> </head> <body> <h2&