楼主: jeffli73

[精华] Oracle数据库字符集问题解析

[复制链接]
论坛徽章:
112
2008新春纪念徽章
日期:2008-02-13 12:43:03马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14马上有车
日期:2014-11-03 12:40:39沸羊羊
日期:2015-03-04 14:43:432015年新春福章
日期:2015-03-06 11:57:31慢羊羊
日期:2015-03-09 16:15:39
发表于 2005-4-7 08:43 | 显示全部楼层
写的不错! 帮你顶一下

使用道具 举报

回复
论坛徽章:
23
发表于 2005-4-7 10:54 | 显示全部楼层
很全面。楼主辛苦了!谢谢

使用道具 举报

回复
论坛徽章:
0
发表于 2005-4-8 12:57 | 显示全部楼层

帮我指点一下!

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

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

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

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

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

使用道具 举报

回复
论坛徽章:
2
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34
发表于 2005-4-8 16:55 | 显示全部楼层
顶顶,非常不错。

使用道具 举报

回复
论坛徽章:
0
发表于 2005-4-8 20:47 | 显示全部楼层
很好!

使用道具 举报

回复
论坛徽章:
0
发表于 2005-4-12 22:09 | 显示全部楼层
經典,不錯,需要學習

使用道具 举报

回复
论坛徽章:
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){}
    }
  }
}

使用道具 举报

回复
论坛徽章:
0
发表于 2005-5-1 23:39 | 显示全部楼层
客户端字符集是在注册表中设置还是在命令行中设置呢?感觉在命令行中设置不起作用。

使用道具 举报

回复
论坛徽章:
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后的数据备份的正确性

使用道具 举报

回复
论坛徽章:
0
发表于 2005-5-24 00:19 | 显示全部楼层
very good, i have learned a lot

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表