如何彻底解决jsp页面中文乱码及数据库乱码
答案:3 悬赏:40
解决时间 2021-02-17 18:22
- 提问者网友:芷芹
- 2021-02-17 00:35
如何彻底解决jsp页面中文乱码及数据库乱码
最佳答案
- 二级知识专家网友:废途浑身病态
- 2021-02-17 01:16
jsp读取数据乱码原因如下:
1、JSP连接数据库语句指定的编码不正确
解决方案:在JSP连接数据库的语句中,带上useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
2、JSP页面没有指定数据提交的编码,就会造成乱码:
解决方案:这种乱码的情况,只需在页面开头加上request.setCharacterEncoding("GBK"); 指定提交的即可。
1、JSP连接数据库语句指定的编码不正确
解决方案:在JSP连接数据库的语句中,带上useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
2、JSP页面没有指定数据提交的编码,就会造成乱码:
解决方案:这种乱码的情况,只需在页面开头加上request.setCharacterEncoding("GBK"); 指定提交的即可。
全部回答
- 1楼网友:留下所有热言
- 2021-02-17 03:28
1、知道自己安装Mysql数据库安装配置时选择了什么编码方式,如果之前安装,现在不太清楚,建议重新安装Mysql数据库,安装配置时选择utf8
(这里有个小技巧:不用卸载Mysql数据,找到安装Mysql数据库目录:D:\MySQL Server 5.1\bin下的MySQLInstanceConfig.exe,双击运行可以进行重新配置安装,并选择utf8编码方式),如图
2、安装成功后,查看编码方式,sql命令如下:
show variables like 'character%';
这里的所有编码方式都要统一为utf8,若某一个不是utf8的编码方式,就要设置为utf8,sql命令如下:set character_set_results=utf8
3、创建数据库并指定数据库的编码方式,sql命令如下:
create database yourDB character set utf8;
4、创建数据库表,也要指定其编码方式
5、如果你的Mysql版本是5.0以下,则还需要在hibernate.cfg.xml配置里面url指定数据库访问连接时的编码方式:
如:url=jdbc:mysql://localhost/db?user=user&password=123456&useUnicode=true&characterEncoding=UTF8
如果Mysql版本是5.0以上,这里的url加不加?user=user&password=123456&useUnicode=true&characterEncoding=UTF8 都没关系
6、写一个字符编码的过滤器,编码方式也要保证跟mysql的字符集一致为UTF-8
注意:在web.xml配置该过滤器时,必须把该过滤器的<filter-mapping>放在struts的映射前面,不然起不到过虑作用
7、所有jsp页面指定编码格式,保证跟mysql的字符集一致为UTF-8
注意:页面里面大小写统一,如<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %>,不能是pageEncoding="UTF-8",contentType="text/html; charset=utf-8",添加数据页面也要跟显示数据页面的编码格式要保持一致,不然的话就会出现添加到数据库中没乱码,从数据库中显示出现乱码的情况
- 2楼网友:晚安听书人
- 2021-02-17 02:24
用的executeresultset 把数据插入数据库的,oracle 数据库编码也是utf-8 的。输入中文,
在数据库里看就是乱码。
------解决方案--------------------------------------------------------
如果你是用tomcat, 就看看tomcat 里的字符集编码是不是utf-8,有可能你的是gbk 编码,
在tomcat 的conf 文件夹下的server.xml 文件中.
connector acceptcount= 100 connectiontimeout= 20000 disableuploadtimeout=
true enablelookups= false maxhttpheadersize= 8192 maxsparethreads= 75
maxthreads= 150 minsparethreads= 25 port= 8080 redirectport= 8443 uriencoding=utf-8 /
------解决方案--------------------------------------------------------
这跟textarea 没关系吧
大方向上肯定是字符集不一致导致的,
但一般都是utf-8 不会出问题,
只能慢慢排除了。。。
------解决方案--------------------------------------------------------
你 如 果 是 用 servlet 的 话 试 试 在 jsp 里 面 加 一 句 %
request.setcharacterencoding( gb2312 ); %
js 请求中文作为参数。肯定会乱码的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯