A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范明正 黑马帝   /  2011-8-20 18:50  /  3393 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看到资料上有这句SQL语句:
CREATE DATABASE `itcast` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
其中COLLATE 'utf8_general_ci'是什么意思呢,起什么作用呀!

评分

参与人数 1技术分 +1 收起 理由
wangfayin + 1

查看全部评分

3 个回复

倒序浏览
MySQL的参考手册是这么描述的

utf8_unicode_ci校对规则是根据Unicode校对规则算法(UCA)执行的, 校对规则描述见http://www.unicode.org/reports/tr10/ 。此校对规则使用UCA 4.0.0版本砝码键:http://www.unicode.org/Public/UC一个/4.0.0/一个llkeys-4.0.0.txt。(以下讨论使用utf8_unicode_ci,但同样适合ucs2_unicode_ci。)

当前,utf8_unicode_ci校对规则仅部分支持Unicode校对规则算法。一些字符还是不能支持。并且,不能完全支持组合的记号。这主要影响越南和俄罗斯的一些少数民族语言,如:Udmurt 、Tatar、Bashkir和Mari。

utf8_unicode_ci的最主要的特色是支持扩展,即当把一个字母看作与其它字母组合相等时。例如,在德语和一些其它语言中‘ß’等于‘ss’。

utf8_general_ci是一个遗留的 校对规则,不支持扩展。它仅能够在字符之间进行逐个比较。这意味着utf8_general_ci校对规则进行的比较速度很快,但是与使用utf8_unicode_ci的 校对规则相比,比较正确性较差)。例如,使用utf8_general_ci和utf8_unicode_ci两种 校对规则下面的比较相等:

Ä = A
Ö = O
Ü = U
两种校对规则之间的区别是,对于utf8_general_ci下面的等式成立:

ß = s
但是,对于utf8_unicode_ci下面等式成立:

ß = ss
对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集 校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。

utf8_general_ci也适用与德语和法语,除了‘ß’等于‘s’,而不是‘ss’之外。如果你的应用能够接受这些,那么应该使用utf8_general_ci,因为它速度快。否则,使用utf8_unicode_ci,因为它比较准确
[ 本帖最后由 黄敏文 于 2011-08-20  19:18 编辑 ]
回复 使用道具 举报
黑马网友  发表于 2011-8-20 19:50:47
藤椅
答非所问吧,不知道你说了些什么,还是不明白。
回复 使用道具 举报
黑马网友  发表于 2011-8-20 20:18:58
板凳
字面意思可以直接翻译过来的   
CREATE DATABASE `itcast` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
就是:
创建itcast这个名称的数据库,采用UTF-8作为编码,并且校对方式采取 'utf8_general_ci'这种标准;
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马