当前位置: 技术问答>java相关
关于tomcat4.0.1+JDK1.3+ORACLE+JDBC中字符编码的转换问题。
来源: 互联网 发布时间:2015-04-18
本文导语: 我的ORACLE采用的是ISO8859-1编码,如何在写入、读取数据库中文的编码转换问题。 数据库编码方式是不能修改的,我应该怎么办呢? | 我使用的办法(不是我发明的方法)比较麻烦,要把每个...
我的ORACLE采用的是ISO8859-1编码,如何在写入、读取数据库中文的编码转换问题。
数据库编码方式是不能修改的,我应该怎么办呢?
数据库编码方式是不能修改的,我应该怎么办呢?
|
我使用的办法(不是我发明的方法)比较麻烦,要把每个进入数据库的字符串和从数据库读出的字符串分别转换编码,也就是
中文数据 --> 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());
}
另外每个页面都要添加
具体环境我用的mySql+redhat7.0/7.1/win2kp/win2ks+tomcat测试过
中文数据 --> 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());
}
另外每个页面都要添加
具体环境我用的mySql+redhat7.0/7.1/win2kp/win2ks+tomcat测试过
|
写入时需转换 ISO-8859-1 to GBK
读出时不转换
读出时不转换
|
JAVA的内置编码是UNICODE,所以要转换:
try
{
String tempByteArray = strSrc.getBytes("ISO-8859-1");
String strReturn = new String(tempByteArray,"GBK");
}
catch(Exception e)
{
}
try
{
String tempByteArray = strSrc.getBytes("ISO-8859-1");
String strReturn = new String(tempByteArray,"GBK");
}
catch(Exception e)
{
}
|
加上这句话试试。
|
main()去掉,没用的,就用那两个方法,可以放到bean中去
|
你的操作系统是什么?
如果是win2000、solaris7,8(字符集是gbk)
向数据库写数据应该没什么太大问题
如果要是linux问题可能会麻烦
你必须转码
如果是win2000、solaris7,8(字符集是gbk)
向数据库写数据应该没什么太大问题
如果要是linux问题可能会麻烦
你必须转码
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。