JSP连接sybase数据库中文显示问题如何解决

这两天被如题的问题缠绕,好不容易解决掉了

当时遇到的问题如下:

sybase运行在unix上,编码未知,jsp页面显示查询数据中文乱码

pageEncoding和charset都已设置,tomcat的xml文件也已设置

已经试过的办法有:

1.  String temp = rsSearch.getString(a[i]);

    if (temp != null) {

    byte[] b = temp.getBytes ("8859_1");

    temp = new String(b,"GBK");

    out.print(temp);

    }

2.String temp = rsSearch.getString(a[i]);

     

      byte[] buffer = new byte[temp.length()];

      int j=0;

      for (int i = 0; i<temp.length(); i++)

      {

        if (temp.charAt(i)>=0x100)

        {

        char c = temp.charAt(i);

        byte[] buf = (""+c).getBytes();

        buffer[j++] = (byte)buf[0];

        buffer[j++] = (byte)buf[1];

        }

       else

       {

       buffer[j++] = (byte)temp.charAt(i);

       }

    }

     temp= new String(buffer, 0, j);

为什么这些用在mysql等数据库就有效的方法用在sybase上就无效

原因是sybase的连接跟其它jdbc连数据库有不同,需在连接时注明属性,dbURL 设为

jdbc:sybase:Tds:hostname:port/dbname?charset=eucgb&jconnect_version=4

,比如我的数据库charset=cp850 ,jconnect_version=3根据自己的情况适当更改就可以了

另外,在jsp页面需要用到我最开始提到的方法1,至此,中文问题得到解决!

时间: 2024-09-18 12:14:34

JSP连接sybase数据库中文显示问题如何解决的相关文章

JSP连接sybase数据库中文显示问题终极解决办法

js|解决|数据|数据库|问题|显示|中文 这两天被如题的问题缠绕,好不容易解决掉了 当时遇到的问题如下: sybase运行在unix上,编码未知,jsp页面显示查询数据中文乱码pageEncoding和charset都已设置,tomcat的xml文件也已设置已经试过的办法有:1.  String temp = rsSearch.getString(a[i]);    if (temp != null) {    byte[] b = temp.getBytes ("8859_1");

jsp连接sybase数据库中文显示问题终极解决办法!

js|解决|数据|数据库|问题|显示|中文   作者 满胜 这两天被如题的问题缠绕,好不容易解决掉了 当时遇到的问题如下: sybase运行在unix上,编码未知,jsp页面显示查询数据中文乱码pageEncoding和charset都已设置,tomcat的xml文件也已设置已经试过的办法有:1.  String temp = rsSearch.getString(a[i]);    if (temp != null) {    byte[] b = temp.getBytes ("8859_1

Navicat连接mysql数据库中文显示乱码解决方法

参考以下解决方法 点击某个连接--属性-切换到高级选项卡–去掉勾选的"使用mysql字符集" 选项–在"编码"处选择65001(UTF-8)或10008-GB2312,再打开就能正常显示中文了. 如果上面方法不能解决可参考 mysql 的安装目录下的my.ini文件里的默认编码有问题,将my.ini文件的这两处的默认编码  代码如下 复制代码 ========================================== [mysql] default-cha

全面解析JSP连接各类数据库大全

js|数据|数据库 一.jsp连接Oracle8/8i/9i数据库(用thin模式) testoracle.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <html> <body> <%Class.forName("oracle.jdbc.driver.OracleDrive

JSP连接各类数据库大全(下)

js|数据|数据库 四.jsp连接Informix数据库 testinformix.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <html> <body> <%Class.forName("com.informix.jdbc.IfxDriver").newInst

JSP连接各类数据库大全

js|数据|数据库   一.jsp连接Oracle8/8i/9i数据库(用thin模式) testoracle.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <html> <body> <%Class.forName("oracle.jdbc.driver.OracleDri

JSP连接ORACLE数据库时注意的一些问题

js|oracle|数据|数据库|问题 一.如何去处理Clob.BLOB的大类型 CLOB可用于存放大文本数据,最多可存储4GB数据,在应用开发中比较常见.java提供的sql.Clob类与之对应.它提供两个方法来读取Clob的数据: getCharacterStream() 方法返回按unicode编码的输入流(java.io.Reader对象) getAsciiStream() 方法返回按ASCII编码的输入流(java.io.InputStream对象) 所以如果你的数据库中有可能存储中文

解决JSP开发Web程序中文显示三种方法

方法一:最简单也是用的最多的方法 <%@ page language="java" pageEncoding="GBK" %> 或者<%@ page contenttype="text/html;charset=gbk";>这里可以用gb2312或者gbk,只是gbk比gb2312支持跟多的字符. 这个方法用于jsp页面中的中文显示. 方法二:使用过滤器 过滤器使用主要针对表单提交,插入数据库的数据都是?号.这也是应为to

解决JSP开发Web程序中文显示的三种方法

js|web|程序|解决|显示|中文 方法一:最简单也是用的最多的方法 <%@ page language="java" pageEncoding="GBK" %> 或者<%@ page contenttype="text/html;charset=gbk";>这里可以用gb2312或者gbk,只是gbk比gb2312支持跟多的字符. 这个方法用于jsp页面中的中文显示. 方法二:使用过滤器 过滤器使用主要针对表单提交,插