由于用造字程序(eudcedit.exe)进行造字,GBK码位已经不够用了,想用unicode码位进行造字,但是unicode码位所造出的字,在数据库中有的能显示,有的则是问号.  对于unicode 码位越靠后的部分(即超出 GBK码位的那些),则越是问号,现在想让数据库支持unicode码位的显示,应该如何做,就是改变数据库的字符集  这些越靠后的码位,在txt或word中能正确显示,在数据库里就是问号  怎样修改数据库的字符集,安装的时候在哪一步选择字符集的支持请高手指点

解决方案 »

  1.   

    刚刚得到论坛其他人的帮助,我也来试试回答个问题,大家交流一下。
    “怎样修改数据库的字符集,安装的时候在哪一步选择字符集的支持”
    1.我记得是在dbca的最后几步,initialization parameters 那个步骤 ,有个tab 是character sets 里面可以选择。  照你的要求,你可能需要用 AL32UTF8 类型的。
    2.关于修改的问题。
    这个问题我试过使用dbca的重新配置功能,但那些选项一直都为灰色,修改不了。
    后来我了解到显示该设置值的 View : 
    nls_database_parameters .
    --------
    select name,
           substr(value$, 1, 40)
    from props$
    where name like 'NLS%'
    --------
    通过显示该的所有值你可以发现:   NLS_NCHAR_CHARACTERSET         AL16UTF16
    这里就是设置字符格式的地方了,然后修改table props$ ,
    update props set value$=’AL32UTF8’ where name=’NLS_NCHAR_CHARACTERSET’通过以上方法,我成功更改了字符格式。
    希望对你有用。
      

  2.   

    将你的Oracle Client的字符集设置成与Oracle Server字符集一样,或者是Oracle Server字符集的子集。最好不要去该Oracle server的字符集,因为Oracle server的字符集是在安装的时候 就已经确定了,如果修改了,很可能会出现意想不到的问题。
      

  3.   

    我把服务器重装了,选择的是’AL32UTF8’ ,客户端是9i的字符集,改的是注册表,为’AL32UTF8’ 可是手动输入f8e1这个码位,还是问号,字段类型varchar,nvarchar的显示一样
    这是怎么回事?试试用造字程序,在f8e1这个码位造个字,手动输入到数据库中,看能不能成功