123
返回列表 发新帖
楼主: tiantianchifan

AL32UTF8 这样的字符集的诡异问题~

[复制链接]
论坛徽章:
122
现任管理团队成员
日期:2011-05-07 01:45:08
21#
发表于 2010-1-22 23:19 | 只看该作者
mos NOTE 788156.1 是一篇好文章 专门讲AL32UTF8

使用道具 举报

回复
论坛徽章:
41
马上加薪
日期:2014-02-19 11:55:14铁扇公主
日期:2012-02-21 15:02:402012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-02-13 15:12:092012新春纪念徽章
日期:2012-01-04 11:50:44ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15ITPUB年度最佳BLOG写作奖
日期:2012-03-13 17:09:53
22#
发表于 2010-1-25 12:20 | 只看该作者
原帖由 zergduan 于 2010-1-22 23:07 发表
所谓的子集超集我理解是这样的关系:
A字符集是B字符集的子集~ 那么A中所存储的所有字符,在B中都存在,并且使用的编码和A相同.
我认为ZHS16GBK虽然不是AL32UTF8的子集,但是因为AL32UTF8是UNICODE标准的字符集,所以它应该有所有的中文字符。只不过对于同一个中文字符它和ZHS16GBK使用不同的编码来表示,所以它并不是ZHS16GBK的超集~

ALTER DATABASE CHARACTER SET XXX 之所以要求必须使用原字符集的严格超集作为新字符集,是因为这样做只不过是修改了数据字典,并没有修改汉字的实际存储编码,所以新的字符集必须保证和旧的字符集使用相同的编码表示相同的汉字,才能保证不出现乱麻或者信息的丢失...


有道理,AL32UTF8理应包含全部字符形式。

secooler

使用道具 举报

回复
论坛徽章:
0
23#
发表于 2011-10-30 19:12 | 只看该作者
呵呵,zergduan 解释的比较到位,secooler 总结的不错,我再补充两句:

1、GB18030 是 GB2312 的超集,这是国家标准。虽然 GBK 基本介于GB18030 和 GB2312之间,但严格讲GBK不是国家标准,是Windows 95开始使用的。
     GB18030 的所有字符在UNICODE中都有对应编码,只不过内码不同。显然,GB18030、GB2312和GBK的所有汉字在AL32UTF8中也应该都是存在的。
2、SQL*Plus 是简单工具,肯定没有考虑那么多。PL/SQL Developer 则是高级工具,它应该是检测了当前线程所用字符集(Windows编程允许线程使用不同字符集),而Toad则也是欠缺考虑。
     呵呵,如果大家都购买正版工具,不要说这个小小的字符集问题,中文版程序以及帮助老外都会发布。

使用道具 举报

回复
论坛徽章:
2
2012新春纪念徽章
日期:2012-01-04 11:58:44ITPUB 11周年纪念徽章
日期:2012-10-09 18:17:01
24#
发表于 2011-12-25 15:45 | 只看该作者
学习了

使用道具 举报

回复

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

本版积分规则 发表回复

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