1、在jsp中,字符集由<%@ page language="java" contentType="text/html;charset=GBK"%>来指定,如果处理中文,需指定为gbk。所以提交的数据全部都使用gbk编码;
2、在java中,从jsp提交过来的数据是gbk编码的,而java默认的处理方式是使用ISO-8859-1编码,所以若在java中能显示jsp提交过来的gbk编码方式的数据,就要进行一个转换:将gbk转换为ISO-8859-1,这样数据就可正常显示。
3、如果要将jsp提交的数据经过java后台处理,然后放入数据库中,就又多了一个数据编码方式:数据库的数据编码方式。以mysql为例,默认字符集为latin,所以若将gbk的数据放入,必然出现乱码,所以首先应改变数据库的编码方式为gbk。
综上,简单的设置方法如下:
jsp (gbk) ----> java(ISO-8859-1) -------> mysql(gbk)
转换
这样设置之后,还有一种情况会出现乱码:当你在jsp端提交一个id号,然后在java处理端通过id号得到数据库中的gbk(汉字)数据,这是就会出现乱码,因为java处理的是ISO-8859-1,你在java到mysql中有了一个ISO-8859-1到gbk的转换,而这些数据本身就是ISO-8859-1,所以转换后就出现问题了。
解决办法:将在java中处理的gbk数据转换为ISO-8859-1即可。
总之:在jsp,java,mysql三者之间的编码方式必须统一,不能错误的转换或者不转换。
posted on 2007-08-17 16:31
冬天出走的猪 阅读(433)
评论(0) 编辑 收藏 所属分类:
JAVA知识