其他中文显示问题请参考:JSP中文乱码问题终极解决方案
JSP源文件在数据库的入口和出口处字符编码的转换问题
一、原因分析
大部分数据库默认支持的编码格式为ISO-8859-1,当JSP文件向数据库中插入中文数据时,必须先将数据从GBK/GB2312格式转为ISO-8859-1格式;同理,当JSP文件从数据库读出中文数据时,需先将数据从ISO-8859-1格式转为GBK/GB2312格式。如果在数据库入口和出口处没有进行正确的字符编码转换,就会在读取数据库数据时导致乱码,Web页面显示的中文字符就出现乱码。
二、解决方法
可采用下述两种方法:
1、处理数据量比较小时,可在数据库入出口处对含有中文的数据进行强制编码格式转换,如:
入库:
String str1 = “JSP中文问题”;
String str2 = new String(str1.getBytes("GBK"),"ISO-8859-1");
出库:
String str3 = result.getString(1);
String str4 = new String(str3.getBytes("ISO-8859-1"),"GBK");
2、处理数据量比较小时,可将数据库默认支持的编码格式直接改为GBK或GB2312。如在MySQL中,可修改MySQL安装目录下配置文件my.ini实现。将my.ini文件中[MySQL]和[Client]两个区中的default-character-set改为GBK或者GB2312,然后重启MySQL服务即可。