字符集高级问题,100求解,希望大家研究
问题描述:
1、数据库为oramcle,字符集环境为AMERICAN_AMERICA.UTF8,客户端环境为ZHS16GBK,客户端web应用数据入库出库采用ZHS16GBK,汉字均正常。
2、有一数据来源,其他地方别人导入的,sqlplus环境设置为AMERICAN_AMERICA.UTF8,可以正确显示正文
3、我的web客户端查询导入的数据乱码,看自己的数据正常。
采用了以下方法:
1、jsp页面字符集设置
2、java程序转码,各种类型的,如:new String(rs.getString(1).getByte("ISO-8859-1"),"GBK")
3、常用的在web中处理汉字的方法,在web.xml文件中增加filter
均不能显示正确中文。JDBC采用的是Thin方式连接,thin方式不受NLS_LANG环境影响,查过oracle官方文档。
通过rs.getByte(1)得到的内容如下:
b: byte[] = byte[24]
[0] = -17
[1] = -65
[2] = -67
[3] = -17
[4] = -65
[5] = -67
[6] = -17
[7] = -65
[8] = -67
[9] = -17
[10] =-65
[11] =-67
[12] =-17
[13] =-65
[14] =-67
[15] = 32
[16] = 32
[17] = 32
[18] = 32
[19] = 32
[20] = 32
[21] = 32
[22] = 32
[23] = 32
[24] = 32
[25] = 32
bytes: -17, -65, -67, -17, -65, -67, -17, -65, -67, -17, -65, -67, -17, -65, -67, -17, -65, -67, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, bytes end
以上应该是5个中文字,什么方式能正常显示?