日期:2014-05-18  浏览次数:20473 次

中文参数传值问题?急、急、急,来者有分
test.aspx页面代码部分:
protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                if   (Request[ "dd "]   !=   null)
                        Label1.Text   =   Server.HtmlDecode(Request.QueryString[ "dd "].ToString());
        }
        protected   void   Button1_Click(object   sender,   EventArgs   e)
        {
                Response.Redirect( "test.aspx?dd= "   +Server.HtmlEncode(TextBox1.Text));
        }

web.config中设置了
<globalization       requestEncoding= "gb2312 "       responseEncoding= "gb2312 "           culture= "zh-CN "       />

但我传递出来的中文是乱码如:
“我”变成了“鎴?”

去掉web.config中的设置则正常
有没办法解决这个问题,主要是页面的编码出现的问题


------解决方案--------------------
编码问题
建议你不要中文传参,以后的麻烦会更多
------解决方案--------------------
你看一下百度的传参
http://www.baidu.com/s?wd=%CD%E6%D0%A1%BD%E3%BC%BC%C7%C9
------解决方案--------------------
不要设置 <globalization requestEncoding= "gb2312 " responseEncoding= "gb2312 " culture= "zh-CN " />
Html.Encode是就是对字符编码
------解决方案--------------------
Response.Redirect( "test.aspx?dd= " +Server.HtmlEncode(TextBox1.Text));
=> Response.Redirect( "test.aspx?dd= " +Server.UrlEncode(TextBox1.Text));
用Server.UrlDecode方法获取

------解决方案--------------------
utf-8
或者在传参前后编码解码
------解决方案--------------------
传参数时加上Server.UrlEncode
保证100%好用~