您的位置:首页 > 数据库 > MySQL

对jsp+servlet+mysql中乱码问题的部分总结

2015-12-08 08:30 603 查看
前两天一个人弄了一下网站的部署,不做不知道,一做吓一跳。原来还有很多的技术和重点在书本中是很难学到的,必须要切身实践才行,经过这次的摸索,自己也总结了不少的经验,现在就拿关于这个显示中文时乱码的问题谈谈。

       1.request.setCharacterEncoding("utf_8")的作用是设置对客户端请求进行重新编码,该方法用来指定对浏览器发送来的数据进行重新编码时使用的编码。
2.response.setCharacterEncoding("utf_8")的作用是指定对服务器响应重新进行编码的编码,服务器在将数据发送到浏览器前,对数据进行重新编码,使用时的编码。
3.response.setCharacter("utf_8")只能用来设置out输出流中采用的编码,但是他的优先级最高。
4.response.setContentType("text/html;charset=utf_8")可以设置out输出流中字符编码,也可是设置浏览器接受到这些字符以什么编码的方式解码,优先权较第一种方法低。我个人认为最好是用这种方法。
当然,对于初学者来说,还要注意一点就是。一般发送端都是用"response"设置编码的格式,比如说:servlet中要转发到一个jsp页面,那就是在servlet中设置resopnse的编码。而在接收页面中一般都是用"request",比如servlet转发到jsp页面后,可以在jsp页面中设置request的编码。这些小小的联系还是自己总结一下好。
在做小项目的过程中,也用到了mysql数据库。当然以前上过oracle的课所以上手mysql对我来说还是不难的,但在操作数据库的过程中也碰到了很多不明觉厉的问题,尤其是在往mysql中存储中文的时候,会出现很多异常。下面我来说说,我所遇到的一些异常;由于mysql默认的编码不是gbk也不是utf-8编码,这个大家不信可以去试试。所以在往数据库中存储汉子时,数据库不知道怎么解析,因而出现乱码的现象。但是,在做项目的过程中,我发现可以在刚刚创建数据库表的时候,就设置好每个属性的编码格式,这样相当的有效,可以在一定程度上避免这个问题(但是,,,我在弄一个jsp页面的时候,出现即使我这样设置了,也还是会出现乱码的问题,郁闷。。。)。设置的格式可以这样:
id varchar(20) character set utf8 default null,.............
对于编码的问题,暂时先总结这么多,希望大家一起分享,一起进步!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: