关于字符集的一个疑问?

[复制链接]
查看11 | 回复6 | 2005-10-24 08:53:30 | 显示全部楼层 |阅读模式
对关于字符集的作用有些疑惑请教大家。
客户端字符集NLS_LANG如果和数据库字符集相一致,那么存入数据时,数据库不进行任何转换。这也是中文能够在US7ASCII字符集合下正确显示的原因。
根据上面的条件推断只要是客户端操作系统所支持的字符,都可以存入数据库,并且能正确显示。前提条件就是客户端NLS_LANG与数据库字符集相一致。

那么请问数据库为什么还要设置不同的字符集呢?,比如ZHS16GBK,US7ASCII,ZHS16GB231280。。。作用是什么?
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
以前老帖子有很多讨论的。多看看。
你这里这个问题,忘了一条:数据库不是只给一个用户使用的。如果不同用户不同语言环境咋办?
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
如果说A用户是日文环境,B用户是德文环境,那么数据库字符集,和各客户端本地的NLS_LANG又该怎么设置呢?
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
NLS_LANG,尽量和OS一样,避免不必要的麻烦。
数据库端,要兼容多语言,选UTF8吧。
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
字符集有三个点 1,客户端操作系统的

2,客户端注册表中的NLS_LANG

3,,数据库自身的
我是这样理解的
客户端操作系统的不管,各个客户端不同也没关系。
只要2=3 那么客户端只要能打出来的子都能存入数据库,并且对本用户来说都能正确显示。
这一步推测有问题吗?
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
monkeyai
按你说的设置,请问A用户(日文环境)做SELECT 的时候,能正确显示B用户(德文环境) 提交的内容吗?
回复

使用道具 举报

千问 | 2005-10-24 08:53:30 | 显示全部楼层
你的推测有问题。。。
看看我写的一个帖子,也可以看eygle的blog,乱码是怎么产生的那一部分
http://www.itpub.net/showthread.php?s=&threadid=538197
比较郁闷,自己写半天的东西没人看。天天论坛回答重复问题
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行