快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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,至此,中文问题得到解决!
返回类别: 教程
上一教程: JDBC和ODBC
下一教程: JDBCTM 指南:入门7-CALLABLESTATEMENT

您可以阅读与"JSP连接SYBASE数据库中文显示问题终极解决办法"相关的教程:
· 解决JSP中文显示问题的几个方式
· MYSQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方式总结
· PHP和JAVA的XML-RPC中文问题解决办法
· JSP用连接池连数据库的问题
· 用JSP从数据库中读取图片并显示在网页上
    微笑服务 优质保证 索取样品