C#中 页面用get传中文后,出现乱码问题?

来源:百度知道 编辑:UC知道 时间:2024/07/02 15:03:56
我用get方式进行传值,大概是这样的:url?value="汉字"。然后我用request["value"]接收后得到的是乱码。我知道传值都是用byte进行的,所以我再想是不是汉字解码问题,难道我要在传值之前先用System.Text.Encoding.Default.GetBytes(value): 编个码再传?

我估计不是用这办法进行传值。正确的办法是什么?

你说的那个也是一种解决办法,不过汉字出现乱码肯定是页面编码问题,处理办法如下:

在你的Web.config里把:
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
改成:
<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>

get传值怎么会用byte?
而且怎么能用这样的呢??
url?value="汉字"

应该要用url加密..

string value = Server.UrlEncode("汉字"); //加密
string str1 = Server.UrlDecode(Request.QueryString["value"]); //解密
网上大家用的都是这种形式的..

如果你这个汉字的值是在程序中动态赋值并合并到url中的就没有问题了
会自动用unicode编码解码
如果你是写死的,就会出这样的问题了,这时候还是应该考虑编码解码
毕竟修改字符集并不是一个可取方法

设置页面<HEAD>中的编码方式为“GB2312”即可。

<globalization requestEncoding="gb2312" responseEncoding="gb2312"/>
确实,我的网站就是这样在Web.config中处理的.可以传递中文字符.如果是在FLASH中进行页面间值的传递,比如我网站里有一个FLASH加载XML的传递,要用中文,就不仅仅需要改成<?xml encodin="gb2312">了,而是在FLASH中也要使用
System.useCodePage=