设为首页
加入收藏夹

也谈“Oracle和D/2000字符集的选择和改
浏览选项:

  本人阅读了河北省统计局--贾书民网友的 "Oracle 和Developer/2000字符集的选择和改
  ---- 疑惑1, 要正确处理汉字,一般有两种方案可供选择:
  ---- 方案一:使用US7ASCII字符集.
  ---- 方案二:使用ZHS16CGB231280字符集.
  ---- 照我的理解(本人用过两年的Developer/2000), 并不一定只可使用这两种字符集,
只要你写forms时用的字符集和运行forms时用的字符集一样即可(尽管我只用过
WE8ISO8859P1和ZHS16CGB231280这两种字符集).

  ---- 疑惑2, 一旦数据库创建之后, 数据库的字符集是不能改变的, 如果要改变数据库的
字符集, 只有重新创建数据库("还有后面一段很长的参考方法").

  ---- 之后, 再关闭,重启动数据库即可.
  ---- 疑惑3.Developer/2000 字符集的改变(还有后面的一段说法).
  ---- 要想客户端的forms程序运行时, 看到正常的字符(客户端用的是Developer/2000 服
务器端用Oracle),需要选择相同的字符集; 否则, 至多你只能看到一处正常的字符(当你运行
forms时的字符集与你编写forms程序的字符集一样, 则可看到客户端forms程序正常的字符 当
与Oracle的字符集一样时, 则可看到Oracle正常的字符).
  ---- 另外, 也不是("所以,如果要修改源程序,还要对其中的汉字重新改写"). 那多麻
烦, 本人97年在襄樊市电信局作97工程时, 也遇过此类问题, 当时电信局计算机中心的周主任
  ---- (假设你用了WE8ISO8859P1字符集编写了forms, 数据库用的是ZHS16CGB231280, 现
在要把这些forms程序的字符集改成和数据库的一样). 操作如下:

  2.type选择Form, Direction选择Binary-To-Text, Browse为某一用了WE8ISO8859P1字符
  forms的*.fmb.
  3.点击 Convert 按钮, 把二进制的*.fmb改写为文本文件*.fmt.
  4.用 Edit 软件把此 *.fmt 打开.
  5.把里面的 NAME_SET = 31, CS = 31 改成 NAME_SET = 850, CS = 850
  (原因 31 指的是 WE8ISO8859P1 字符集, 850 指的是 ZHS16CGB231280 字符集)
  6.步骤如 2 不过把Direction选择Text-To-Binary Browse 为刚才的 *.fmt
  7.再重新生成此 *.fmb 为 *.fmx
  ---- 此时, 你再在注册表中Oracle的字符集为ZHS16CGB231280下运行此程序, 就能看到
  ---- 此步骤虽然稍有繁琐, 但总比重新编写程序快捷, 尤其是大批量的程序的时候. 另
外, 你可以编写一个小程序来代替步骤4,5. 需要注意的一点是一开始执行步骤2时前, 注册
表中Oracle的字符集应为WE8ISO8859P1 执行步骤6时前, 注册表中Oracle的字符集应为
  ---- 有兴趣的朋友, 不妨照本人的说法试试.



Copyright © 2004 wanxu.com All Rights Reserved