链路聚合模式:html向aspx页面传值汉字乱码问题
来源:百度文库 编辑:中财网 时间:2024/04/29 17:30:42
搜索引擎页面 首页为html, 页面有个站内搜索功能,通过提交表单方式传参到.aspx页面。起初不做任何操作,aspx搜索结果页面显示乱码。 原因:html采用的是Gb2312 而aspx页面默认是utf编码,显然会乱码。
正常情况下 URL编码格式,如“汉”字:
GB2312编码:BABA URL格式:%BA%BA
UTF-8 编码:E6B189 URL格式:%E6%B1%89
1.起初我是在Page_Load里这样操作:
Encoding gb2312 = Encoding.GetEncoding("gb2312");
Response.ContentEncoding = gb2312;
aspx页面的编码格式改为: 出现的情况是,页面上的汉字竟然都成了口口口。
2.之后网上再找了些资料,通过这种方式转化编码。
byte[] barr = System.Text.Encoding.UTF8.GetBytes(Key);
Key = System.Text.Encoding.GetEncoding("gb2312").GetString(barr);结果有些汉字可以转化过来,但大多汉字会变成:“锟斤拷” 经典乱码。
原因:
Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACTER
那么U+FFFD的UTF-8编码出来,恰好是 '\xef\xbf\xbd'。
如果这个'\xef\xbf\xbd',重复多次,例如 '\xef\xbf\xbd\xef\xbf\xbd',然后放到GBK/CP936/GB2312/GB18030的环境中显示的话
一个汉字2个字节,最终的结果就是:锟斤拷 哈哈。。。
此方法还是不行。
3.无奈只能修改 web.config, 因为该文件的重要性,对其他文件也会有很大的影响,我一般很少去动,尽量在自己的页面完成,但这次看来是不行了。
web.config文件
改为
结果汉字传参过来正确编码,没了乱码。 经过全站一番测试,问题严重了,后台很多文件都乱码了。看来web.config文件还是不要去改,小题大作。
4.最后通过解析地址栏编码,我接受参数的时候只要
System.Collections.Specialized.NameValueCollection nv = System.Web.HttpUtility.ParseQueryString(Request.Url.Query, System.Text.Encoding.GetEncoding("GB2312"));
汉字就不会乱码了。
可是要注意的是提交表单的方法一定要是Get方式,Post方式接收不到值。
我解决问题的步骤如下,也包括不成功的步骤
1.html页面:
2. aspx页面引入命名空间
using System.Text;
using System.Collections.Specialized;
string CurrentStr = Request.Url.Query;
System.Collections.Specialized.NameValueCollection nv = System.Web.HttpUtility.ParseQueryString(CurrentStr, System.Text.Encoding.GetEncoding("GB2312"));
string Key = nv["WordKey"];
3.搞定。哈哈
正常情况下 URL编码格式,如“汉”字:
GB2312编码:BABA URL格式:%BA%BA
UTF-8 编码:E6B189 URL格式:%E6%B1%89
1.起初我是在Page_Load里这样操作:
Encoding gb2312 = Encoding.GetEncoding("gb2312");
Response.ContentEncoding = gb2312;
aspx页面的编码格式改为: 出现的情况是,页面上的汉字竟然都成了口口口。
2.之后网上再找了些资料,通过这种方式转化编码。
byte[] barr = System.Text.Encoding.UTF8.GetBytes(Key);
Key = System.Text.Encoding.GetEncoding("gb2312").GetString(barr);结果有些汉字可以转化过来,但大多汉字会变成:“锟斤拷” 经典乱码。
原因:
Unicode和老编码体系的转化过程中,肯定有一些字,用Unicode是没法表示的,Unicode官方用了一个占位符来表示这些文字,这就是:U+FFFD REPLACEMENT CHARACTER
那么U+FFFD的UTF-8编码出来,恰好是 '\xef\xbf\xbd'。
如果这个'\xef\xbf\xbd',重复多次,例如 '\xef\xbf\xbd\xef\xbf\xbd',然后放到GBK/CP936/GB2312/GB18030的环境中显示的话
一个汉字2个字节,最终的结果就是:锟斤拷 哈哈。。。
此方法还是不行。
3.无奈只能修改 web.config, 因为该文件的重要性,对其他文件也会有很大的影响,我一般很少去动,尽量在自己的页面完成,但这次看来是不行了。
web.config文件
改为
结果汉字传参过来正确编码,没了乱码。 经过全站一番测试,问题严重了,后台很多文件都乱码了。看来web.config文件还是不要去改,小题大作。
4.最后通过解析地址栏编码,我接受参数的时候只要
System.Collections.Specialized.NameValueCollection nv = System.Web.HttpUtility.ParseQueryString(Request.Url.Query, System.Text.Encoding.GetEncoding("GB2312"));
汉字就不会乱码了。
可是要注意的是提交表单的方法一定要是Get方式,Post方式接收不到值。
我解决问题的步骤如下,也包括不成功的步骤
1.html页面:
2. aspx页面引入命名空间
using System.Text;
using System.Collections.Specialized;
string CurrentStr = Request.Url.Query;
System.Collections.Specialized.NameValueCollection nv = System.Web.HttpUtility.ParseQueryString(CurrentStr, System.Text.Encoding.GetEncoding("GB2312"));
string Key = nv["WordKey"];
3.搞定。哈哈
我的aspx页面 变成乱码了 谁来帮俺看看啊
关于aspx.html的问题.
HTML页面小问题
Html页面问题
预览.aspx页面时出现的问题
html页面的刷新问题!
jsp页面中数据库中是汉字,提出来却是乱码
关于post提交中文信息到aspx页面的问题!
HTML如何接收.aspx页get方法传来的值
ASPX问题
Html怎样转换成aspx
html怎么转化为aspx
页面乱码
急!显示页面显示由html编辑器编辑出来的内容是乱码,这是怎么回事
我的邮箱页面汉字不能正常显示,老是显示成乱码,是怎么回事啊
java问题:用getProperty读取汉字为什么显示乱码?
在mysql中如何解决汉字乱码的问题?
JCreator中汉字乱码问题怎么解决.(JAVA软件)
动态页面转换为HTML的操作方法(分页问题)
透明Flash与图片在HTML页面无法结合问题
求教生成html页面fw.writeline"的问题
ascx 用户控件如何得到其所在aspx页面中的值,,
汉字成了乱码
汉字乱码翻译工具