Oracle字符集引起的乱码,可以通过Filter统一处理吗?或者有没有更好的简便方法?
问题描述:
一套jsp应用程序,后台使用oracle,字符集是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,一切正常。后来客户更改了数据库的字符集(客户总是对的,不要指望改回来),为AMERICA_AMERICA.US7ASCII,结果jsp页面上所有从数据库读取的中文字符全部成了乱码(非数据库字符显示正常)。
尽管可以通过string.getBytes("iso-8859-1")转换字符串来消除乱码,可是现在jsp页面数量巨大,除了显示的时候要转换为汉字编码,在保存的时候还要转换为ISO88591的编码,所以这个方法不大可行。
问题:
能不能通过Filter来统一处理编码转换(我自己用过滤器request.setCharacterEncoding("GBK")只能处理页面间传送的字符乱码问题,对数据库读取的无能为力)?或者在连接的时候有什么参数可以直接读取并转换?或者其他方法可以批量转换?越简单越好