特殊情况的需要,一个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了)。请问,这是为什么?有什么办法解决吗?谢谢!
......
用户名:<input type="text" name="user_name">
......
</form>login.aspx页面的服务器端代码,使用c#,Page_Load()中获取用户名的代码大致如下: string strUserName = Request.Params["user_name"];现在的问题是,如果用户名输入中有中文字符,则strUserName得到的字符串中所有中文字符都被过滤掉了,比如,输入“用户123”,得到的strUserName为“123”,“用户”不见了(页面的编码已都设置成gb2312了)。请问,这是为什么?有什么办法解决吗?谢谢!
在Web.Config 设置 globalization 为GB2312 如下:
<globalization
requestEncoding="GB2312"
responseEncoding="GB2312"
/>
建议:
传中文参数最好用URL编码!
HttpUtility.UrlDecode 方法 (String)
<globalization
requestEncoding="GB2312"
responseEncoding="GB2312"
/>再用
System.Web.HttpUtility.UrlDecode,System.Web.HttpUtility.UrlEncode
编码和解码