特殊情况的需要,一个asp页面发送到aspx页面,asp页面中的相关script大致如下:<form name="form1" method="post" action="login.aspx">
  ......
  用户名:<input type="text" name="user_name">
  ......
</form>login.aspx页面的服务器端代码,使用c#,Page_Load()中获取用户名的代码大致如下:  string strUserName = Request.Params["user_name"];现在的问题是,如果用户名输入中有中文字符,则strUserName得到的字符串中所有中文字符都被过滤掉了,比如,输入“用户123”,得到的strUserName为“123”,“用户”不见了(页面的编码已都设置成gb2312了)。请问,这是为什么?有什么办法解决吗?谢谢!

解决方案 »

  1.   

    string strUserName=Request.Form["user_name"]
      

  2.   

    System.Web.HttpUtility.UrlEncodeToString
      

  3.   

    解决方法 :
      在Web.Config 设置 globalization 为GB2312  如下:
        <globalization 
                requestEncoding="GB2312" 
                responseEncoding="GB2312" 
       />
    建议:
      传中文参数最好用URL编码!
      

  4.   

    试试
    HttpUtility.UrlDecode 方法 (String)
      

  5.   

    Config中设置
    <globalization 
                requestEncoding="GB2312" 
                responseEncoding="GB2312" 
       />再用
    System.Web.HttpUtility.UrlDecode,System.Web.HttpUtility.UrlEncode
    编码和解码
      

  6.   

    果然修改Web.Config就可以了。谢谢诸位了!