浏览器访问:http://localhost:64921/Test/Index?cardno=610404198005010058&name=黄飞鸿
C#中接收name参数:string name = Request["name"];
我想实现的是C#通过Request获得name参数的值,可是结果却不是"黄飞鸿",而是乱码"榛勯楦?",问度娘找了很多解决办法,都没能解决,不过功夫不负有心人,看到一篇和我遇到同样问题的文章,他是将web.config配置中
<globalization fileEncoding="gb2312" requestEncoding="gb2312" responseEncoding="gb2312" />
gb2312改成utf-8就好了。这就是因为网站设置的request编码方式和页面设置的不一致才导致获取中文乱码的。
可是我这样改的话就会影响整个网站的页面编码方式,怎么只给某个页面设置编码方式呢?
<location path="Test/Index"> <system.web> <!--one--> <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="zh-CN" fileEncoding="utf-8" /> </system.web> </location>
对,就是这样,通过设置path="Test/Index",只给某个页面设置它的编码方式。改了之后就能正常接收中文了。
补充方法:
在后来的资料中又发现了一种更简单的解决方法,就是直接在request代码哪里作文章。
string name = HttpUtility.ParseQueryString(Request.Url.Query, System.Text.Encoding.GetEncoding("utf-8"))["name"];
显示一样正常,看来真的是条条大路通罗马啊!
通过以上内容我们知道了C#中Request["name"]获得中文名字显示乱码不正常的解决方法,感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!