我在客户端使用javascript调用webservice,传递参数值是个中文,到service得到的却是乱码var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
var dom = new ActiveXObject("Microsoft.XMLDOM");
xmlhttp.open("POST","../../WebService/ADRReport.asmx/GetFactoryItems", false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");xmlhttp.send("pillCurrencyName=复方炔诺酮片&pillMerchandiseName=复方炔诺酮片");
dom.loadXML(xmlhttp.responseText);
....后台service(C#写的)
public string[] GetFactoryItems(string pillCurrencyName,string pillMerchandiseName)
{
string msg;
System.Diagnostics.Trace.WriteLine(pillCurrencyName);
if(!dataSet.FactoryItems(pillCurrencyName,pillMerchandiseName,out msg))这个pillCurrencyName获得的是乱码,怎么解决webconfig里我已经加了
<globalization requestEncoding="gb2312" responseEncoding="gb2312"
fileEncoding="gb2312"></globalization>
var dom = new ActiveXObject("Microsoft.XMLDOM");
xmlhttp.open("POST","../../WebService/ADRReport.asmx/GetFactoryItems", false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");xmlhttp.send("pillCurrencyName=复方炔诺酮片&pillMerchandiseName=复方炔诺酮片");
dom.loadXML(xmlhttp.responseText);
....后台service(C#写的)
public string[] GetFactoryItems(string pillCurrencyName,string pillMerchandiseName)
{
string msg;
System.Diagnostics.Trace.WriteLine(pillCurrencyName);
if(!dataSet.FactoryItems(pillCurrencyName,pillMerchandiseName,out msg))这个pillCurrencyName获得的是乱码,怎么解决webconfig里我已经加了
<globalization requestEncoding="gb2312" responseEncoding="gb2312"
fileEncoding="gb2312"></globalization>
解决方案 »
- 程序打包后的安装文件不能用,怎么办?
- 提个弱智问题啊!!最后做出来的exe文件怎样换图标啊??
- cs模式下datagirdView 要实现自定义绑定列怎么办
- 线程关不了
- 十萬火急啊~~~ Winform中如何連接公網上的WebServers?
- VS.NET自带的打包安装项目,当一个程序安装后,下次如果要升级这个项目,它要求必须先卸载,我希望能自动升级,如何做?
- 急!怎么实现后退操作
- 用c#做过半年网站(ASP.NET),现在想做做Form程序,请问做WEB与Form程序有什么区别?
- 寻找C#数据库编程代码!
- 高手请近来!!!!!!
- 看看这些代码是什么工具自动产生的?
- c#中怎么利用下标访问ArrayList啊
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
var dom = new ActiveXObject("Microsoft.XMLDOM");
xmlhttp.open("POST","../../WebService/ADRReport.asmx/GetFactoryItems", false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");xmlhttp.send("pillCurrencyName="+encodeURIComponent(复方炔诺酮片)+"&pillMerchandiseName=="+encodeURIComponent(复方炔诺酮片));
dom.loadXML(xmlhttp.responseText);后台我使用
pillCurrencyName = HttpUtility.UrlDecode(pillCurrencyName.ToLower());
还是乱码
用URLEncode编码一下
alert(urltest);
//xmlhttp.send("pillCurrencyName="+vPillCurrencyName+"&pillMerchandiseName="+vPillMerchandiseName);
xmlhttp.send(urltest);
这个直接灸报错,URLEncode不存在
//xmlhttp.setRequestHeader("Content-Type","text/html");
//xmlhttp.setRequestHeader("Content-Type","charset=gb2312"); alert(vPillCurrencyName);
alert(vPillMerchandiseName);
//var urltest = "pillCurrencyName="+vPillCurrencyName+"&pillMerchandiseName="+vPillMerchandiseName;
var urltest = "pillCurrencyName="+encodeURIComponent(vPillCurrencyName)+"&pillMerchandiseName="+encodeURIComponent(vPillMerchandiseName);
alert(urltest);
//xmlhttp.send("pillCurrencyName="+vPillCurrencyName+"&pillMerchandiseName="+vPillMerchandiseName);
xmlhttp.send(urltest);
试了还是不行
在C#获得值仍然是乱码
var urltest = "pillCurrencyName=复方炔诺酮片&pillMerchandiseName=复方炔诺酮片";
xmlhttp.send(urltest);
后台
public string[] GetFactoryItems(string pillCurrencyName,string pillMerchandiseName)
{
System.Diagnostics.Trace.WriteLine(pillCurrencyName);我监测还是乱码
fileEncoding="gb2312"></globalization>
fileEncoding="gb2312"></globalization>改成这样也不行
http://blog.csdn.net/knight94/archive/2006/05/01/704645.aspx
pillCurrencyName = GetUnicodeString(pillCurrencyName);
得到的仍然是乱码
那不是一样吗?还是要穿参数给GetUnicodeString
参数都不需要编码,后台也不需要解码de