还是中文乱码问题!? sybase client 安装 chinese language 了吗?---我使用的是 12.0 版本 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你先看看String bytes取出来的时候是什么编码,然后就好办了。 直接取数据不用转换String sStr = rs.getString("fName") ;try: To: bxh777(hydrus) 我的版本是11.9.2,已经安装了中文语言了,因为我直接在sql advantage上查询结果,中文显示正常的To:yakuu(享受孤独) 该怎么看它是什么编码呢,我取出来的bytes是“[B@586cbd”,对应的汉字应该是“第一税种名称”To:Andrawu(Andrawu) 不行的,如果不转换,显示出来的是不识别的汉字 你用这个试一下:public String getChin(String str) { try { if(str == null){ return null; } else{ str = str.trim(); String temp = new String(str.getBytes("GBK"),"ISO8859-1"); return temp; } } catch (Exception e) { return null; }} 问题可能出在你的JSP或Servlet语句中如果是JSP,应该加上 <%@ page contentType="text/html; charset=gb2312" %>如果是Servlet应该加上response.setContentType("text/html;charset=gb2312"); To: bxh777(加瓦),谢谢你的热心,我也试了你的方法,得出来的结果更乱了,连几个汉字都没法看出来To: powerball(力量) 没用的,我是jsp页面,已经加了那句话,别的中文都可以显示的真是很奇怪的问题啊! text,Varchar字段,应用new String(rs.getBytes("colname"),"gb2312");try on: 将所有可能的编码都列出来排列组合一下,因为具体不知道你的情况,但是总有一个是正确的。其实中文编码问题很简单,我建议你尽量不要用getBytes来操作,这样影响你程序的性能。 to apengyun(白啸天) <%@ page contentType="text/html; charset=gb2312" %>try to sunharck(凤林king) 错误,我这里进去出来都要处理,不然的话就是乱码。to firefoxyu (鱼儿) 我这里的运行环境和你的有点像,copy 一段代码在我这里运行看行不行。我连着两天了,一直在修改程序处理中文乱码问题。但愿,程序换到别的机子上不会再有这个问题。 to: WalkSing(我行) 不行啊,出现错误如下:java.sql.SQLException: JZ0TE: 试图在非法的类型对之间进行 转换。有效的数据库数据类型为:'varbinay, long binary, binary, image'to: bxh777(加瓦) 我用的方法都是本论坛里面网友提供的方法,全部如下:方法一:public String toGb(String uniStr){ String gbStr = ""; if(uniStr == null){ uniStr = ""; } try{ byte[] tempByte = uniStr.getBytes("ISO8859_1"); gbStr = new String(tempByte,"GB2312"); //gbStr = new String(tempByte,"GBK"); }catch(UnsupportedEncodingException uef){ } return gbStr; }方法二:public String Bytes2Gb(String bytes) { String result = null; if(bytes!=null && !bytes.equals("")) { try{ result = new String(bytes.getBytes("ISO-8859-1"),"gb2312"); //result = new String(bytes.getBytes("ISO8859_1"),"GBK"); }catch(Exception ex){ System.out.println("Error Message of Bytes2Gb:" + ex.toString()); ex.printStackTrace(); } } return result; }方法三:public String getChin(String str) { try { if(str == null){ return null; }else{ str = str.trim(); String temp = new String(str.getBytes("GBK"),"ISO8859-1"); return temp; } } catch (Exception e) { return null; }}以上方法的逆方法我也用上了,调用方法如下:public String getSzmc(String id){ String result = ""; try{ strSql = "SELECT sz_mc FROM m_sz WHERE sz_id='" + id + "'"; rs = this.sqlSelect(strSql); if (rs.next()){ result = rs.getString("sz_mc"); System.out.println("中文resultA=" + toGb(toUni(result))) ; System.out.println("中文resultB=" + toGb(result)) ; System.out.println("中文resultC=" + Bytes2Gb(result)) ; System.out.println("中文resultD=" + Bytes2Gb(Gb2Bytes(result))) ; System.out.println("中文resultE=" + getChin(result)); }else{ result = "没找到"; } }catch(Exception ex){ System.out.println("取税种名称出错:" + ex.toString()) ; System.out.println("sql=" + strSql) ; } return result; }可惜输出的结果没有一种是正确的啊 注意以下问题:1. 你的JSP文件的编码。设置contentType与你文件的实际编码相同。一般Windows环境下设置为GB2312即可。但是注意不要把contentType设置成gb2312,文件却以unicode存盘。(应用本条可解决静态汉字的编码问题)2. 你的数据库的编码。即了解数据库里用什么编码保存。比如gb2312、utf-8还是iso-8859-1?3. 你的JDBC是否与该数据库的语言版本相符?4. 你的JSP引擎是否有中文问题(用一个form提交中文参数能否显示)?请参考IBM dW中的Java汉字编码问题的文章,应该可以解决。 <%@ page contentType="text/html;charset=8859_1" %><meta http-equiv="Content-Type" CONTENT="text/html;charset=gb2312"> to firefoxyu (鱼儿) 我这里的运行环境和你的有点像,copy 一段代码在我这里运行看行不行。 struts2问题! servlet重定向jsp样式不能显示 MySQL blob 保存 word 乱码 java web start如何与javascript交互? 帮忙看一下ibatis 报如下错误 webserver上的多用户资源安全问题! applet小程序测试出错帮忙看看呀。 Servlet输出文件下载时怎么显示中文文件名 jsp各位高手来看看,指点指点!我已经郁闷了好长时间了! 监控客户端访问webservice服务 请教各位高手,关于使用JSP与mysql的登录问题!急!急!急!急!急! 想要一个用jsp做的新闻发布系统
String sStr = rs.getString("fName") ;try:
我的版本是11.9.2,已经安装了中文语言了,因为我直接在sql advantage上查询结果,中文显示正常的To:yakuu(享受孤独)
该怎么看它是什么编码呢,我取出来的bytes是“[B@586cbd”,对应的汉字应该是“第一税种名称”To:Andrawu(Andrawu)
不行的,如果不转换,显示出来的是不识别的汉字
public String getChin(String str) {
try {
if(str == null){
return null;
}
else{
str = str.trim();
String temp = new String(str.getBytes("GBK"),"ISO8859-1");
return temp;
}
} catch (Exception e) {
return null;
}
}
如果是JSP,应该加上 <%@ page contentType="text/html; charset=gb2312" %>
如果是Servlet应该加上response.setContentType("text/html;charset=gb2312");
try on:
其实中文编码问题很简单,我建议你尽量不要用getBytes来操作,这样影响你程序的性能。
<%@ page contentType="text/html; charset=gb2312" %>
try
to firefoxyu (鱼儿) 我这里的运行环境和你的有点像,copy 一段代码在我这里运行看行不行。我连着两天了,一直在修改程序处理中文乱码问题。但愿,程序换到别的机子上不会再有这个问题。
不行啊,出现错误如下:
java.sql.SQLException: JZ0TE: 试图在非法的类型对之间进行 转换。有效的数据库数据类型为:'varbinay, long binary, binary, image'to: bxh777(加瓦)
我用的方法都是本论坛里面网友提供的方法,全部如下:方法一:
public String toGb(String uniStr){
String gbStr = "";
if(uniStr == null){
uniStr = "";
}
try{
byte[] tempByte = uniStr.getBytes("ISO8859_1");
gbStr = new String(tempByte,"GB2312");
//gbStr = new String(tempByte,"GBK");
}catch(UnsupportedEncodingException uef){
}
return gbStr;
}方法二:
public String Bytes2Gb(String bytes) {
String result = null;
if(bytes!=null && !bytes.equals("")) {
try{
result = new String(bytes.getBytes("ISO-8859-1"),"gb2312");
//result = new String(bytes.getBytes("ISO8859_1"),"GBK");
}catch(Exception ex){
System.out.println("Error Message of Bytes2Gb:" + ex.toString());
ex.printStackTrace();
}
}
return result;
}
方法三:
public String getChin(String str) {
try {
if(str == null){
return null;
}else{
str = str.trim();
String temp = new String(str.getBytes("GBK"),"ISO8859-1");
return temp;
}
} catch (Exception e) {
return null;
}
}以上方法的逆方法我也用上了,调用方法如下:
public String getSzmc(String id){
String result = "";
try{
strSql = "SELECT sz_mc FROM m_sz WHERE sz_id='" + id + "'";
rs = this.sqlSelect(strSql);
if (rs.next()){
result = rs.getString("sz_mc");
System.out.println("中文resultA=" + toGb(toUni(result))) ;
System.out.println("中文resultB=" + toGb(result)) ;
System.out.println("中文resultC=" + Bytes2Gb(result)) ;
System.out.println("中文resultD=" + Bytes2Gb(Gb2Bytes(result))) ;
System.out.println("中文resultE=" + getChin(result));
}else{
result = "没找到";
}
}catch(Exception ex){
System.out.println("取税种名称出错:" + ex.toString()) ;
System.out.println("sql=" + strSql) ;
}
return result;
}可惜输出的结果没有一种是正确的啊
1. 你的JSP文件的编码。设置contentType与你文件的实际编码相同。一般Windows环境下设置为GB2312即可。但是注意不要把contentType设置成gb2312,文件却以unicode存盘。(应用本条可解决静态汉字的编码问题)
2. 你的数据库的编码。即了解数据库里用什么编码保存。比如gb2312、utf-8还是iso-8859-1?
3. 你的JDBC是否与该数据库的语言版本相符?
4. 你的JSP引擎是否有中文问题(用一个form提交中文参数能否显示)?请参考IBM dW中的Java汉字编码问题的文章,应该可以解决。