时间:2021-07-01 10:21:17 帮助过:2人阅读
你好
</body>
</html>
2.现我有两个文件,一个register.html和一个register.jsp,在register.html页面中输入注册信息,传递给register.jsp文件,该文件将接收到的数据写入到数据库中。出现英文写入正常,中文乱码的情况。若中文部分全为???,则说明中文字符未能写入数据库,若为无法辨认的字符乱码,证明中文写入了数据库只是编码有问题。
当出现中文部分全为???或使用insert语句都无法写入数据库时,我重新创建了数据库。
create database test DEFAULT CHARSET SET utf8 COLLATE utf8_general_ci; (设置默认字符集,及数据库校验规则)
use test;
create table student(id int AUTO_INCREMENT primary key not null, name varchar(10) not null, password varchar(20) not null )ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
show create table student; 显示创建表的信息
show variables like ‘character_set_%‘; 查看数据库字符集
参考:http://www.2cto.com/database/201406/306012.html
我发现,在我将输入数据从html传入到jsp文件中时,就已经是乱码了,这个乱码是tomcat的内部编码格式iso8859-1在捣乱,也就是说post提交时,如果没有设置提交的编码格式,则会以iso8859-1方式进行提交,(tomcat默认编码:ISO8859-1)接受的jsp却以utf-8的方式接受。导致乱码。
有两种方法可以解决该问题
1>.接受参数时进行编码转换 String name = new String(request.getParameter("uname").getBytes("ISO-8859-1"),"utf-8"); 针对单个参数转码
2>.在jsp接受参数的代码前加上 request.setCharacterEncoding("UTF-8"); 针对所有参数转码
jsp接收到的参数终于可以正常显示了。
参考:http://blog.csdn.net/centre10/article/details/5903924
jsp与mysql中的中文字符乱码问题
标签: