admin 管理员组文章数量: 1184232
相信写 JSP 的人都遇到过乱码的问题,似乎 JSP 乱码是一个非常经典的问题。以前遇到乱码的时候,基本都可以搞定,当时遇到的乱码无非以下两种:
1 .页面上的汉字乱码
这个我碰到的比较少,多半是因为没有加上
<%@ page contentType="text/html;charset=gb2312" %> ,或者是说这句代码制定的字符集与 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 中指定的不一致,这个应该比较好搞定。
2 .从表单读取数据乱码
这个我就基本上经常碰到了,通常是这样的 name=request.getParameter(“name”) ,在页
面上打印出来的时候就乱码了,这个时候通常只要重新转码就可以搞定了,如下面的代码所示: name=new String(name.getBytes(“ISO-8859-1”),”GB2312”);
前天又遇到了一个乱码问题,于是按照以前的经验来进行处理结果怎么搞都不行,无
论怎么转码都不行,情况是这样的:因为用户要求所有的地方都统一为 UTF-8 编码,于是用了如下的指令, <%@ page contentType="text/html;charset= utf-8 " %> 和 <meta http-equiv="Content-Type" content="text/html; charset= utf-8 "> ,
从表单中用 request.getParameter 得到参数的时候出现了乱码,此时加上这句 request.setCharacterEncoding("utf-8"); 基本就没乱码了。但是,如果我通过 url 来传递中文参数的话就行不通了,这个时候无论我怎么转码,或者说修改 tomcat 的配置文件都不行了。我的代码是类似这样的:
var name="<%= c_name %>";
window.location = url+"? name="+name+"&unit="+unit
其中 c_name 是中文。我上网试了很多方法都不行,最后经过如下的处理就可以了:
var name="<%= java.net.URLEncoder.encode(c_name,"utf-8") %>";
window.location = url+"? name="+name+"&unit="+unit 。
注:尽管乱码问题一般都被解决了,但是一直想弄清乱码产生的根源是什么,以前看到过一片帖子,详细阐述了乱码产生的原因,可惜当时太浮躁,没看完,现在也找不到了,哪位兄弟知道的话不妨告知一下,这才是解决问题的根本,不仅要知其然还要知其所以然, ^_^ 。
版权声明:本文标题:JSP编程入门必学:避免中文显示混乱的实用技巧 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1770560344a3535045.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论