VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 17|回复: 4

数据库字符集,如何修改从ANSI改为unicode

[复制链接]

4

主题

15

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2020-3-15 23:00:01 | 显示全部楼层 |阅读模式
由于用造字程序(eudcedit.exe)进行造字,GBK码位已经不够用了,想用unicode码位进行造字,但是unicode码位所造出的字,在数据库中有的能显示,有的则是问号.

  对于unicode 码位越靠后的部分(即超出 GBK码位的那些),则越是问号,现在想让数据库支持unicode码位的显示,应该如何做,就是改变数据库的字符集

  这些越靠后的码位,在txt或word中能正确显示,在数据库里就是问号

  怎样修改数据库的字符集,安装的时候在哪一步选择字符集的支持

请高手指点
回复

使用道具 举报

0

主题

1

帖子

2

积分

新手上路

Rank: 1

积分
2
发表于 2020-7-31 21:15:01 | 显示全部楼层
刚刚得到论坛其他人的帮助,我也来试试回答个问题,大家交流一下。
“怎样修改数据库的字符集,安装的时候在哪一步选择字符集的支持”
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’

通过以上方法,我成功更改了字符格式。
希望对你有用。


回复

使用道具 举报

0

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2020-8-1 10:45:01 | 显示全部楼层
将你的Oracle Client的字符集设置成与Oracle Server字符集一样,或者是Oracle Server字符集的子集。

最好不要去该Oracle server的字符集,因为Oracle server的字符集是在安装的时候 就已经确定了,如果修改了,很可能会出现意想不到的问题。
回复

使用道具 举报

4

主题

15

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2020-8-1 15:30:01 | 显示全部楼层
我把服务器重装了,选择的是’AL32UTF8’ ,客户端是9i的字符集,改的是注册表,为’AL32UTF8’

可是手动输入f8e1这个码位,还是问号,字段类型varchar,nvarchar的显示一样


这是怎么回事?

试试用造字程序,在f8e1这个码位造个字,手动输入到数据库中,看能不能成功
回复

使用道具 举报

4

主题

15

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2020-8-11 05:45:01 | 显示全部楼层
waiting...
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|CopyRight © 2008-2020|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表