ITPUB??ì3
ITPUB论坛 » Oracle专题深入讨论 » Oracle数据库字符集问题解析

标题: [精华] Oracle数据库字符集问题解析
离线 Toms_zhang
会员


精华贴数 1
个人空间 0
技术积分 16808 (59)
社区积分 2045 (563)
注册日期 2002-8-31
论坛徽章:46
现任管理团队成员管理团队2007贡献徽章会员2007贡献徽章2008年新春纪念徽章ITPUB新首页上线纪念徽章 
      

发表于 2005-4-7 08:43 
写的不错! 帮你顶一下


__________________
托马斯张MSN:toms_zrp@live.cn  我的BLOG:http://tomszrp.itpub.net
只看该作者    顶部
离线 qlm_1982
中级会员


精华贴数 0
个人空间 0
技术积分 464 (4084)
社区积分 138 (2814)
注册日期 2004-9-2
论坛徽章:23
      
      

发表于 2005-4-7 10:54 
很全面。楼主辛苦了!谢谢


只看该作者    顶部
离线 scarlet_hong
初级会员



精华贴数 0
个人空间 0
技术积分 2 (171853)
社区积分 0 (338118)
注册日期 2005-4-8
论坛徽章:0
      
      

发表于 2005-4-8 12:57 
帮我指点一下!

我在vc程序里面是以unicode格式插入 希腊字符如“ςΣύνθςεσςηMMS,Ρυθμίσεις MMS”,
vc里面调试,字符已经正确转成unicode格式,无问号。

但是在oracle8i 数据库显示却成了 “?Σ?νθ?εσ?ηMMS,Ρυθμ?σει? MMS”

数据库设置是 utf-8的,server是 english ,client是中文的,但是区域选项设置为了希腊字符。

所以我想问问,是不是我数据库还有哪里设置不正确,还是系统不支持?你知道问题可能出在哪嘛?

因为我其他国家语言切换了区域选项,都可以正确显示的,如韩语,日语,俄语之类的。


只看该作者    顶部
离线 lijietz
高级会员


精华贴数 0
个人空间 0
技术积分 3528 (395)
社区积分 1835 (602)
注册日期 2004-11-8
论坛徽章:2
会员2006贡献徽章授权会员    
      

发表于 2005-4-8 16:55 
顶顶,非常不错。


__________________
      Linux/unix + oracle DBA  + oracle EBS                                                   我的blog  http://lijietz.itpub.net/     
只看该作者    顶部
离线 xhjjxm
初级会员



精华贴数 0
个人空间 0
技术积分 14 (68236)
社区积分 0 (338875)
注册日期 2005-4-8
论坛徽章:0
      
      

发表于 2005-4-8 20:47 
很好!


只看该作者    顶部
离线 yanjun0426
一般会员



精华贴数 0
个人空间 0
技术积分 204 (9091)
社区积分 3 (19652)
注册日期 2003-12-20
论坛徽章:0
      
      

发表于 2005-4-12 22:09 
經典,不錯,需要學習


只看该作者    顶部
离线 chengly54
初级会员



精华贴数 0
个人空间 0
技术积分 38 (33110)
社区积分 0 (235260)
注册日期 2004-12-28
论坛徽章:0
      
      

发表于 2005-4-14 15:13 
这个Oracle数据库是啥问题?

大虾,我测试一个数据库,只有下面这个程序查询出了正确的信息。
其中查询语句是
System.out.println(new String(rs.getString("NAME".getBytes("ISO8859-1","UTF-8");
其他的编码方式都不对,这个数据库是不是有什么问题?
import java.sql.*;

public class QueryXX{
  public static void main(String args[]){
    QueryXX u = new QueryXX();
    try{
      u.query();
    }catch(Exception e){
      e.printStackTrace();
    }
  }
  public void query() throws Exception{
    Connection cn = null;
    Statement st = null;
    ResultSet rs = null;

    try{
      Driver d = (Driver)Class.forName("oracle.jdbc.driver.OracleDriver".newInstance();
      java.util.Properties props = new java.util.Properties();
      props.put("user",     "wolf";
      props.put("password", "grandmother";
      String strConnectionString = "jdbcracle:thin:@127.0.0.1:1521:House";
      cn = d.connect(strConnectionString, props);

      st = cn.createStatement();
      rs = st.executeQuery("SELECT name FROM XX";
      while(rs.next()){
        System.out.println(new String(rs.getString("NAME".getBytes("ISO8859-1","UTF-8");
      }rs.close();rs = null;
    }catch(Exception e){
      e.printStackTrace();
    }finally{
      try{
        if(rs != null) rs.close();
        if(st != null) st.close();
        if(cn != null) cn.close();
      }catch(Exception exception1){}
    }
  }
}


只看该作者    顶部
离线 basasz
初级会员



精华贴数 0
个人空间 0
技术积分 36 (34516)
社区积分 0 (343702)
注册日期 2005-4-11
论坛徽章:0
      
      

发表于 2005-5-1 23:39 
客户端字符集是在注册表中设置还是在命令行中设置呢?感觉在命令行中设置不起作用。


只看该作者    顶部
离线 blessgod
一般会员


精华贴数 0
个人空间 0
技术积分 318 (6039)
社区积分 0 (130466)
注册日期 2004-8-2
论坛徽章:0
      
      

发表于 2005-5-8 16:19 
实例初始化参数
SQL> show parameter nls_language
nls_language AMERICAN
nls_territory AMERICA
但是在服务器端查询动态视图
select * from v$nls_parameters;
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CHARACTERSET ZHS16CGB231280
两者查询结果为什么不同啊
两者有什么区别吗???
原先在oracle9i客户端exp备份数据时没有报异常,exp为中文界面.
最近重新安装oracle 9i后在客户端exp时,系统提示:exp-00091
在设定客户端的NLS_language和服务器一样后AMERICAN_AMERICA.ZHS16CGB231280
没有错误提示,但是exp和sqlplus界面均变为英文,
担心exp后的数据备份的正确性


只看该作者    顶部
离线 anthonywu
珍惜



精华贴数 0
个人空间 0
技术积分 1002 (1779)
社区积分 2 (26029)
注册日期 2005-3-9
论坛徽章:0
      
      

发表于 2005-5-24 00:19 
very good, i have learned a lot


__________________
四季轮回
只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问