对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,.............
对于编码的问题,暂时先总结这么多,希望大家一起分享,一起进步!
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,.............
对于编码的问题,暂时先总结这么多,希望大家一起分享,一起进步!
相关文章推荐
- Mysql #1406 Data too long 错误
- 【MySQL】索引长度的一些限制
- mysql下载安装配置
- mysql 创建表时以UTF8编码
- MySQL中Binary Log二进制日志文件的基本操作命令小结
- MySQL 5.7.9编译安装
- ubuntu kylin 15.10 防火墙 和 mysql不能远程访问的解决方法
- rsyslog+loganalyzer搭建日志服务器
- MySQL-Binlog解析篇:1 Greeting Packet
- MySQL-Binlog解析篇:2 Authenticate
- MySQL-Binlog解析篇:3 show master status
- mysqlslap
- JDBC连接mysql
- MySQL如何执行关联查询
- MySQL索引之主键索引
- 关于mysql的存储过程的学习与总结
- MySQL索引之聚集索引介绍
- MySQL主从配置
- MySQL中innoDB表设计优化
- MySQL的启动流程及启动时常见错误分析