问题:在IDEA中使用JSP页面插入数据到MySQL数据库时写入中文,网页显示为乱码,并且在MySQL数据库中一样显示为乱码。
在网络上是各种查阅资料,大部分的都是说在Setting上面修改编码,或者说在MySQL数据文件my.ini中修改编码,再要不然就是在VM options上增加UTF-8编码,还有就是在代码url中添加"characterEncoding=utf-8",总之办法很多但却没有一个是能对症下药的。
问题分析:程序在JSP页面上插入数据库时,如果JSP页面上显示乱码应第一时间去到数据库中查看,看看数据库是否显示乱码。如果数据库中显示乱码,那就打开MySQL数据库单独操作一下,如果在MySQL数据库中插入中文数据显示为乱码,那就是数据库自身的编码没有统一,这个时候在MySQL数据库中使用"show variables like 'character%';"命令查看编码是否为统一编码,如果不是在MySQL安装路径中找到my.ini文件修改为统一编码:
在这一般设置为GBK编码,之所以设置为gbk是因为MySQL属性当前代码页为GBK编码格式。反之如果不显示乱码,基本上可以排除数据库自身的编码问题。
在排除了数据库的问题后,那么大概率就是出在JSP编码或者代码编码问题上,一般在IDEA上新建一个JSP文件默认开头为:<%@ page contentType="text/html;charset=UTF-8" language="java" %>,如图所示:
这里的"charset=UTF-8"只是Java字符集的编码,如果你在<%@.....%>之间使用Java代码插入数据到数据库中,那么你MySQL数据库中也应和Java代码中的编码一致为:UTF-8。因为我的MySQL编码是GBK,所以我在此处设置的是"charset=GBK"
重点说明:
1、如果你想在JSP网页上插入数据,首先先提取数据库中的数据,在提取数据时设置编码:
request.setCharacterEncoding(""),说明:数据库是什么编码括号里面就填什么编码。比如数据库是GBK编码,代码就是request.setCharacterEncoding("GBK"),
注意:该方法必须放置在request.getParameter()方法前面,否则无效!
2、在提取完数据之后,在JSP网页上开始插入数据时应在JSP开头添加"pageEncoding=GBK"编码,如图所示:
以上就是JSP插入MySQL数据显示乱码问题介绍以及相应的解决思路