遇到了乱码的问题(转载)
2008-10-22 21:54
337 查看
今天遇到一个乱码的问题,我从一个html页想.net后台提交表单,数据到后台就乱码,虽然乱码的问题以前也遇到过,不过每次都很郁闷,虽然最后也都解决了问题,但是很是不能很系统的了解关于编码的种种细节,想总结下:
首先说今天遇到的问题,在head里设置的html表单的编码方式是gb2312,那么在form里默认的数据编码方式便是gb2321,Form有一个不太常用的属性是accept-charset,他可以设定数据提交时的编码方式,关于accept-charset如下:
accept-charset 属性accept-charset 属性允许您指定一系列字符集,服务器必须支持这些字符集,从而得以正确解释表单中的数据。 该属性的值是用引号包含字符集名称列表。如果可接受字符集与用户所使用的字符即不相匹配的话,浏览器可以选择忽略表单或是将该表单区别对待。 此属性的默认值是 "unknown",表示表单的字符集与包含表单的文档的字符集相同。
这是属性在IE6中是无效的(这是郁闷的根源啊),在firefox中可以正常使用。在网上找了个hack的方法,就是用js设置编码方式,如下:
<form action="addcompany.ashx" method="post" onsubmit="document.charset=''utf-8;" >
当然可以不用这个属性,服务器端是什么编码方式,在html直接设置和服务器端相同就可以了。利用accept-charset可以向和本文档编码不同的服务器端提交表单,可以一次设置多个,如:
<form action="addcompany.ashx" method="post" accept- charset="utf-8,gb2321,..." >
还好又学到了accept-charset的用法。
其次是曾遇到url编码的问题,url不经过编码,汉字是无法传递到服务器的,利用encodeURI(url)方法可以实现编码。
再次是曾使用htm文件做模板,生成静态页,html文件的编码方式是ANSI,.net下是utf-8,编码不一致导致乱码,解决办法是,用记事本打开html文件,另存为,选择正确的编码方式保存。
在js中使用escape()和unescape()对字符串进行编解码,
提示和注释
提示:可以使用 unescape() 对 escape() 编码的字符串进行解码。
注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。
最后,在asp.net中遇到的乱码问题,这篇文章总结的不错
/article/4898729.html
好了,希望遇到乱码再也不郁闷了,无非是编码不统一的原故,只不过今天忘了试试别的浏览器,IE6太不标准了,呵呵,跨浏览器编程!!
转自:http://hongyin163.sh103.idcwind.net/post/11.html
首先说今天遇到的问题,在head里设置的html表单的编码方式是gb2312,那么在form里默认的数据编码方式便是gb2321,Form有一个不太常用的属性是accept-charset,他可以设定数据提交时的编码方式,关于accept-charset如下:
accept-charset 属性accept-charset 属性允许您指定一系列字符集,服务器必须支持这些字符集,从而得以正确解释表单中的数据。 该属性的值是用引号包含字符集名称列表。如果可接受字符集与用户所使用的字符即不相匹配的话,浏览器可以选择忽略表单或是将该表单区别对待。 此属性的默认值是 "unknown",表示表单的字符集与包含表单的文档的字符集相同。
这是属性在IE6中是无效的(这是郁闷的根源啊),在firefox中可以正常使用。在网上找了个hack的方法,就是用js设置编码方式,如下:
<form action="addcompany.ashx" method="post" onsubmit="document.charset=''utf-8;" >
当然可以不用这个属性,服务器端是什么编码方式,在html直接设置和服务器端相同就可以了。利用accept-charset可以向和本文档编码不同的服务器端提交表单,可以一次设置多个,如:
<form action="addcompany.ashx" method="post" accept- charset="utf-8,gb2321,..." >
还好又学到了accept-charset的用法。
其次是曾遇到url编码的问题,url不经过编码,汉字是无法传递到服务器的,利用encodeURI(url)方法可以实现编码。
再次是曾使用htm文件做模板,生成静态页,html文件的编码方式是ANSI,.net下是utf-8,编码不一致导致乱码,解决办法是,用记事本打开html文件,另存为,选择正确的编码方式保存。
在js中使用escape()和unescape()对字符串进行编解码,
提示和注释
提示:可以使用 unescape() 对 escape() 编码的字符串进行解码。
注释:ECMAScript v3 反对使用该方法,应用使用 decodeURI() 和 decodeURIComponent() 替代它。
最后,在asp.net中遇到的乱码问题,这篇文章总结的不错
/article/4898729.html
好了,希望遇到乱码再也不郁闷了,无非是编码不统一的原故,只不过今天忘了试试别的浏览器,IE6太不标准了,呵呵,跨浏览器编程!!
转自:http://hongyin163.sh103.idcwind.net/post/11.html
相关文章推荐
- [转载]完美解决drupal6上传中文文件名附件乱码问题
- Eclipse导入工程遇到的一些问题之中文乱码
- 2015年创业中遇到的技术问题:1-10(乱码-SpringMVC-jquery-JSON等)
- Ubuntu server 中文环境乱码问题的解决办法(转载)
- JSON遇到中文乱码问题的解决方法
- springmvc图片上传遇到的问题(除了图片还要传文字)乱码参数取不到
- 【开发遇到的问题】java web项目在引用服务器静态资源中文乱码问题
- mysql安装版和解压版安装过程遇到1067的问题,和数据库乱码问题 解决办法
- 【水杯测试】——面试会遇到的问题之一,转载自“labs”
- 使用jqGrid时遇到的中文乱码问题
- 解决Get和Post请求中中文乱码问题 (2013-01-26 23:59:39)转载▼ 标签: javaee it 分类: JavaEE 对于Post请求,只需在Servlet或者jsp中写入如下
- 转载Xcode7编译遇到linking in object file built for OSX, for architecture x86_64问题解决方案
- myeclipse个人遇到的乱码问题
- JSP开发过程遇到的中文乱码问题及解决方案
- 关于Java控制台输入输出乱码问题(转载)
- 浅谈测试rhel7新功能时的感受及遇到的问题【转载】
- 关于Mysql5出现乱码的问题 (转载)
- 今天遇到post乱码问题。。。已经解决
- 如何解决jsp:include标签在包含html文件时遇到的乱码问题
- JSP中文乱码问题总结(转载)