程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP連接sybase數據庫中文顯示問題如何解決

JSP連接sybase數據庫中文顯示問題如何解決

編輯:關於JSP

    這兩天被如題的問題纏繞,好不容易解決掉了

    當時遇到的問題如下:

    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,至此,中文問題得到解決!

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved