当前位置: 技术问答>关于JDBC-ODBC和JDBC的区别
iis7站长之家
jdbc访问Sybase中文乱码?请大家帮帮忙!先谢了!
来源: 互联网 发布时间:2017-04-22
本文导语: 近日在使用jdbc访问sybase数据库的时候,发现把以前通过应用程序(不知道是使用什么开发语言开发的)保存的中文数据,通过jdbc读出后,中文显示是乱码,我起初认为是使用getString()的问题,可是当我以byte流读出...
近日在使用jdbc访问sybase数据库的时候,发现把以前通过应用程序(不知道是使用什么开发语言开发的)保存的中文数据,通过jdbc读出后,中文显示是乱码,我起初认为是使用getString()的问题,可是当我以byte流读出后,发现中文的编码,既不是gbk,也不是utf-8,是一种2个字节表示一个中文的编码,我想知道是有没有办法,能够让我把这个编码方式转换成gbk的方法,以及相关的办法。我分数不多但只要能够解决问题,我会尽可能的满足大家的要求,谢谢,非常感谢!!
|
我没有作过sybase中的,但是我可以给你点提示
java环境默认提交的编码为 ISO8859_1,中文处理需要 GB2312 编码,很多解决方法中都是使用 new String(s.getBytes("ISO8859_1"), "GB2312")这样的方法来进行转换,如果变量较多,处理起来很麻烦。
可以在 getParameter() 方法获取参数之前,即在String之前使用request.setCharacterEncoding("GB2312");,将提交的信息转化为 GB2312 编码。
或者在环境变量加上:CATALINA_OPTS=-Dfile.encoding=gb2312
或者在启动时加参数:-Dfile.encoding=gb2312
上面的只是简单的处理,没有经过数据库中
中文吧,基本上都是这么处理的,没有其它更好的办法,要不就需要修改它们的默认的编码为GB2312了,这个需要有源代码,通常提供JDBC的厂家是不给你提供源代码的。
java环境默认提交的编码为 ISO8859_1,中文处理需要 GB2312 编码,很多解决方法中都是使用 new String(s.getBytes("ISO8859_1"), "GB2312")这样的方法来进行转换,如果变量较多,处理起来很麻烦。
可以在 getParameter() 方法获取参数之前,即在String之前使用request.setCharacterEncoding("GB2312");,将提交的信息转化为 GB2312 编码。
或者在环境变量加上:CATALINA_OPTS=-Dfile.encoding=gb2312
或者在启动时加参数:-Dfile.encoding=gb2312
上面的只是简单的处理,没有经过数据库中
中文吧,基本上都是这么处理的,没有其它更好的办法,要不就需要修改它们的默认的编码为GB2312了,这个需要有源代码,通常提供JDBC的厂家是不给你提供源代码的。
|
我一样在用sybase,要有连接方法,留下你的EMAIL给我,我发给你
|
要有特定的连接方法才能显示中文