免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 914 | 回复: 0
打印 上一主题 下一主题

Jsp 乱码问题的处理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-27 10:35 |只看该作者 |倒序浏览

关于jsp 程序开发中的乱码问题

经过一天的探索,终于把乱码问题解决了,心里舒畅了不少。

现将解决办法总结一下,希望对大家有所帮助。
以下为我的一个页面中的部分编码:
  contentType="text/html; charset=UTF-8"%>
request.setCharacterEncoding("UTF-8");
%>


    我所有的页面的编码统一都是UTF-8(请注意UTF-8的写法,一定要严格大小写)。
    1:
这句话是设定jsp 页面的编码,如果是在IDE(如eclipse 或者netbeans)文件的格式会自动保存为UTF-8  格式,如果你用的是文本编辑器的话它默认的是ANSI编码,你需要将文件另存为UTF-8 格式的。
    2:  contentType="text/html; charset=UTF-8"%>

  有了这两名声明,在本页面中的信息就一般不会出现乱码了。
    3:表单提交过程中的乱码。
  声明
request.setCharacterEncoding("UTF-8");
%>

由于request 默认的是ISO8859-1 编码,所以在处理表单提交的内容并插入数据库就会出现乱码,声明一下就不用再转换了。
4:数据库乱码:
  安装数据库的时候,设置默认编码为UTF-8


创建表结构时声明:

CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(50) NOT NULL,
  `password` varchar(100) NOT NULL,
  `studentid` varchar(50) NOT NULL,
  `truename` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

声明DEFAULT CHARSET=utf8;(注意在数据中utf8 应该这样写)。


  连接数据库时声明采用UTF-8 编码:
  如我的连接mysql 数据库时

   Class.forName("org.gjt.mm.mysql.Driver").newInstance();
   String url="jdbc:mysql://localhost/demo?user=root&password=root&useUnicode=true&characterEncoding=UTF-8";
   Connection conn=DriverManager.getConnection(url);
   Statement stmt=conn.createStatement();
%>

useUnicode=true&characterEncoding=UTF-8,即声明采用UTF-8 编码。

总结:

原则上是所有的编码统一使用一个,数据为中的编码和jsp  页面上的编码写法不一样(UTF-8 与utf-8).
做到以上几点,乱码问题解决!




本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/35069/showart_310818.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP