JAVA+ORACLE的中文问题,散分了。 字段名称不要用中文,如果用中文的话,一定要将ORACLE数据库的文字编码设置成UTF-8,或GB2312. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以用下面的程序转化一下 public String CtoU(String s) { byte[] tmpbyte; if(s!=null) { try { tmpbyte=s.getBytes("ISO8859_1"); s=new String(tmpbyte); }catch(UnsupportedEncodingException e) { System.out.println("UnsupportedEncodingException "); return s; } } return s;} 1、最好你将sql语句贴出,给大家讨论2、是否你java调用sql语句的参数有错?3、字段名称用中文?真的不好 是哪个做ORACLE DBA 的把字段名写成了中文的开除! 1.SQL语句是没错的,很简单的,在SQL PLUS里执行正确的。2.Statement的executeQuery方法,参数只有一个,就是SQL字符串,这个也是错不了的,都用过几百次的了。3.可能我没说清楚,字段名是英文的,但该字段里的数据是中文的。 我现在用字节流接收ResultSet,把结果写到文件里,还是“靠”,崩溃........ 我用oracle 8i,当用java从中取汉字时(当然作为字段值了),从来没有涉及到编码的应该是数据库安装时的默认编码不支持中文的问题,改掉后,取出来的数据就不需要转码了 to :langjianjun(绝对在乎你) 好象你说的不对吧?我们的oracle装在ibm 的aix操作系统的,哪个肯定不是中文的内核的但是将编码方式改掉,也是可以的 再补充:数据库编码ISO8859_1(prop$表里的Character set值是WE8ISO8859P1) 是Unix或Linux系统吗?,如果是则需要修改字符集 Windows 2000 Advanced Server 可能是数据库字符集的问题。我们以前做过的项目,如果数据库使用的字符集支持汉字的话(例如 UTF-8,GB2312),那么 Java 通过 JDBC 取出来的数据库字段值内容是完全可以直接显示其中的中文的;如果使用的字符集本身不支持汉字的话(例如 ASCII7),需要经过 getBytes("") 的转换(中间那个 encoding 忘了是写 GB2312 还是 iso8859-1 了 :) 检查Oracle客户端和服务器端字符集是否一致 oracle对中文的支持还可以,但是中文的数据无法比较,因为你用了“用了WHERE带中文的SELECT语句,还是取不到记录”,嘿嘿,这是很正常。至于第一个问题,只要在写入数据库之前转换编码,比如gb2312 to iso8859_1,然后在读出之后在转换回来。应该没问题。 String str = new String((String)request.getParameter("str").getBytes("iso-8859-1"),"GB2312"); serlet2.3的时候,可以在每个页面包含一个语句就可以解决中文问题了哦。具体是response.setCharsetEncoding("gbk");这个根据具体定咯,你在看看帮组。 关于java中文件输入输出流问题 各位大侠,8>>>2,是怎么运算的啊!求解。 怎么自动添加文件名 一个关于Vector的程序,不知道为什么出错 和thread有关的类是不是不能用下面的方法new和调用?? 关于String处理谢谢!高分 Java的实例化问题 500分求助 如何用jdk1.1编写File.io.listRoots(), 保持控件的下压状态? 请问java中如何实现报表设计问题? C++, C#, Java的特性比较 想请懂java的朋友帮个忙:java中类与类之间的转换,需要调用那些函数
public String CtoU(String s)
{
byte[] tmpbyte;
if(s!=null)
{
try
{
tmpbyte=s.getBytes("ISO8859_1");
s=new String(tmpbyte);
}catch(UnsupportedEncodingException e)
{
System.out.println("UnsupportedEncodingException ");
return s;
}
}
return s;
}
2、是否你java调用sql语句的参数有错?
3、字段名称用中文?真的不好
开除!
2.Statement的executeQuery方法,参数只有一个,就是SQL字符串,这个也是错不了的,都用过几百次的了。
3.可能我没说清楚,字段名是英文的,但该字段里的数据是中文的。
应该是数据库安装时的默认编码不支持中文的问题,改掉后,取出来的数据就不需要转码了
好象你说的不对吧?我们的oracle装在ibm 的aix操作系统的,哪个肯定不是中文的内核的
但是将编码方式改掉,也是可以的
具体是response.setCharsetEncoding("gbk");
这个根据具体定咯,你在看看帮组。