关于tomcat4.0.1+JDK1.3+ORACLE+JDBC中字符编码的转换问题。

zhu_liping 2002-03-18 10:17:48
我的ORACLE采用的是ISO8859-1编码,如何在写入、读取数据库中文的编码转换问题。
数据库编码方式是不能修改的,我应该怎么办呢?
...全文
70 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanchang 2002-03-18
你的操作系统是什么?
如果是win2000、solaris7,8(字符集是gbk)
向数据库写数据应该没什么太大问题

如果要是linux问题可能会麻烦
你必须转码
回复
Justin 2002-03-18
main()去掉,没用的,就用那两个方法,可以放到bean中去
回复
Justin 2002-03-18
我使用的办法(不是我发明的方法)比较麻烦,要把每个进入数据库的字符串和从数据库读出的字符串分别转换编码,也就是

中文数据 --> gb2bytes --> [ Database ] --> bytes2gb --> 读出数据


// to gb2312 每次从数据库读出的数据应用这个方法后再使用
public static String bytes2gb(String gb) {
String s =null;
if(gb!=null) {
try{
s = new String(gb.getBytes("ISO8859_1"),"GB2312");
}catch(Exception e) {
System.out.println(e.toString());
e.printStackTrace();
}
}
return s;
}
// to bytes 读入数据库时应用的方法
public static String gb2bytes(String bytes) {
String s =null;
if(bytes!=null) {
try{
s = new String(bytes.getBytes("GB2312"),"ISO8859_1");
}catch(Exception e){
System.out.println(e.toString());
e.printStackTrace();
}
}
return s;
}

public static void main(String[] args){
//Design for test purpose.
DbConnection dc = new DbConnection();
System.out.println(dc.openConnection());
}


另外每个页面都要添加
<%@ page contentType="text/html;charset=gb2312"%>

具体环境我用的mySql+redhat7.0/7.1/win2kp/win2ks+tomcat测试过
回复
littleyy 2002-03-18
加上这句话试试。
<%@ page contentType="text/html;charset=gb2312"%>
回复
zjp009 2002-03-18
JAVA的内置编码是UNICODE,所以要转换:
try
{
String tempByteArray = strSrc.getBytes("ISO-8859-1");
String strReturn = new String(tempByteArray,"GBK");
}
catch(Exception e)
{
}
回复
zhu_liping 2002-03-18
可是我的页面都是采用的gb2312编码方式呀
回复
southline 2002-03-18
写入时需转换 ISO-8859-1 to GBK
读出时不转换
回复
发动态
发帖子
Web 开发
创建于2007-09-28

7.9w+

社区成员

Java Web 开发
申请成为版主
社区公告
暂无公告