Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结_MySQL
一、官方文档说明
下面摘录一下Mysql 5.1中文手册中关于utf8_unicode_ci与utf8_general_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,因为它比较准确。
如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束,例如:
create table my_table ( name varchar(20) binary not null default '')type=myisam default charset latin1;
二、简短总结
utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。
utf8_general_ci校对速度快,但准确度稍差。
utf8_unicode_ci准确度高,但校对速度稍慢。
如果你的应用有德语、法语或者俄语,请一定使用utf8_unicode_ci。一般用utf8_general_ci就够了,到现在也没发现问题。。。
三、详细总结
1、对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。
2、utf8_general_ci也适用与德语和法语,除了‘?'等于‘s',而不是‘ss'之外。如果你的应用能够接受这些,那么应该使用 utf8_general_ci,因为它速度快。否则,使用utf8_unicode_ci,因为它比较准确。
用一句话概况上面这段话:utf8_unicode_ci比较准确,utf8_general_ci速度比较快。通常情况下 utf8_general_ci的准确性就够我们用的了,在我看过很多程序源码后,发现它们大多数也用的是utf8_general_ci,所以新建数据 库时一般选用utf8_general_ci就可以了
四、如何在MySQL5.0中使用UTF8
在 my.cnf中增加下列参数
[mysqld]
init_connect='SET NAMES utf8′
default-character-set=utf8
default-collation = utf8_general_ci
执行查询 mysql> show variables; 相关如下:
character_set_client | utf8
character_set_connection | utf8
character_set_database | utf8
character_set_results | utf8
character_set_server | utf8
character_set_system | utf8
collation_connection | utf8_general_ci
collation_database | utf8_general_ci
collation_server | utf8_general_ci
个人见解,对于数据库的使用,utf8 - general 已经足够的准确,并且相较与 utf8 - unicode速度上有优势,固可放心采用之
附1:旧数据升级办法
以原来的字符集为latin1为例,升级成为utf8的字符集。原来的表: old_table (default charset=latin1),新表:new_table(default charset=utf8)。
第一步:导出旧数据
mysqldump --default-character-set=latin1 -hlocalhost -uroot -B my_db --tables old_table > old.sql
第二步:转换编码(类似unix/linux环境下)
iconv -t utf-8 -f gb2312 -c old.sql > new.sql
或者可以去掉 -f 参数,让iconv自动判断原来的字符集
iconv -t utf-8 -c old.sql > new.sql
在这里,假定原来的数据默认是gb2312编码。
第三步:导入
修改old.sql,在插入/更新语句开始之前,增加一条sql语句: "SET NAMES utf8;",保存。
mysql -hlocalhost -uroot my_db 大功告成!!
附2:支持查看utf8字符集的MySQL客户端有
1.) MySQL-Front,据说这个项目已经被MySQL AB勒令停止了,不知为何,如果国内还有不少破解版可以下载(不代表我推荐使用破解版 :-P)。
2.) Navicat,另一款非常不错的MySQL客户端,汉化版刚出来,还邀请我试用过,总的来说还是不错的,不过也需要付费。
3.) PhpMyAdmin,开源的php项目,非常好。
4.) Linux下的终端工具(Linux terminal),把终端的字符集设置为utf8,连接到MySQL之后,执行 SET NAMES UTF8; 也能读写utf8数据了。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Call of Duty Warzone ialah permainan mudah alih yang baru dilancarkan Ramai pemain sangat ingin tahu tentang cara menetapkan bahasa permainan ini kepada bahasa Cina Malah, ia adalah sangat mudah ubah suai selepas menggunakannya. Kandungan terperinci boleh dipelajari dalam pengenalan kaedah tetapan bahasa Cina ini. Mari kita lihat bersama. Cara menetapkan bahasa Cina untuk permainan mudah alih Call of Duty: Warzone 1. Mula-mula masukkan permainan dan klik ikon tetapan di penjuru kanan sebelah atas antara muka. 2. Dalam bar menu yang muncul, cari pilihan [Muat Turun] dan klik padanya. 3. Pilih [SIMPLIFIEDCHINESE] (Simplified Chinese) pada halaman ini untuk memuat turun pakej pemasangan Chinese Simplified. 4. Kembali ke tetapan

Persediaan VSCode dalam Bahasa Cina: Panduan Lengkap Dalam pembangunan perisian, Visual Studio Code (VSCode ringkasnya) ialah persekitaran pembangunan bersepadu yang biasa digunakan. Bagi pembangun yang menggunakan bahasa Cina, menetapkan VSCode kepada antara muka Cina boleh meningkatkan kecekapan kerja. Artikel ini akan memberi anda panduan lengkap, memperincikan cara menetapkan VSCode kepada antara muka Cina dan menyediakan contoh kod khusus. Langkah 1: Muat turun dan pasang pek bahasa Selepas membuka VSCode, klik di sebelah kiri

Hamparan Excel adalah salah satu perisian pejabat yang ramai orang gunakan sekarang, kerana komputer mereka adalah sistem Win11, jadi antara muka bahasa Inggeris dipaparkan itu. Untuk menyelesaikan masalah ini, isu ini Editor berada di sini untuk menjawab soalan untuk semua pengguna Mari lihat kandungan yang dikongsi dalam tutorial perisian hari ini. Tutorial untuk menukar Excel kepada bahasa Cina: 1. Masukkan perisian dan klik pilihan "Fail" di sebelah kiri bar alat di bahagian atas halaman. 2. Pilih "pilihan" daripada pilihan yang diberikan di bawah. 3. Selepas memasuki antara muka baharu, klik pilihan "bahasa" di sebelah kiri

Bagaimana untuk memaparkan aksara Cina dengan betul dalam PHPDompdf Apabila menggunakan PHPDompdf untuk menjana fail PDF, adalah cabaran biasa untuk menghadapi masalah aksara Cina yang kacau-bilau. Ini kerana pustaka fon yang digunakan oleh Dompdf secara lalai tidak mengandungi set aksara Cina. Untuk memaparkan aksara Cina dengan betul, kita perlu menetapkan fon Dompdf secara manual dan pastikan untuk memilih fon yang menyokong aksara Cina. Berikut ialah beberapa langkah dan contoh kod khusus untuk menyelesaikan masalah ini: Langkah 1: Muat turun fail fon Cina Pertama, kita perlukan

Tajuk: Cara berkesan untuk membaiki aksara Cina yang kacau dalam PHPDompdf Apabila menggunakan PHPDompdf untuk menjana dokumen PDF, aksara Cina yang kacau adalah masalah biasa. Masalah ini biasanya berpunca daripada fakta bahawa Dompdf tidak menyokong set aksara Cina secara lalai, menyebabkan kandungan Cina tidak dipaparkan dengan betul. Untuk menyelesaikan masalah ini, kita perlu mengambil beberapa cara yang berkesan untuk menyelesaikan masalah PHPDompdf Cina yang kacau. 1. Gunakan fail fon tersuai Cara yang berkesan untuk menyelesaikan masalah aksara Cina yang kacau dalam Dompdf adalah dengan menggunakan

Sesetengah rakan mungkin secara tidak sengaja menetapkannya kepada bahasa Inggeris apabila memasang sistem Akibatnya, semua antara muka ditukar kepada bahasa Inggeris dan mereka tidak dapat difahami. Malah, kita boleh menetapkan bahasa dalam panel kawalan dan menukar bahasa kepada bahasa Cina Mari kita lihat cara menukarnya. Cara menukar bahasa dalam win7 kepada bahasa Cina 1. Mula-mula klik butang di sudut kiri bawah skrin, dan kemudian pilih "Panel Kawalan" 2. Cari "Changedispalylanguage" di bawah "Jam, Bahasa, dan Wilayah" 3. Klik " Inggeris" di bawah untuk memilih daripada menu lungsur Cina Mudah. 4. Selepas pengesahan, klik "Logoffnow" untuk log keluar dan mulakan semula komputer. 5. Selepas balik

"WWE2K24" ialah permainan sukan lumba yang dicipta oleh Visual Concepts dan dikeluarkan secara rasmi pada 9 Mac 2024. Permainan ini sangat dipuji, dan ramai pemain sangat berminat sama ada ia akan mempunyai versi Cina. Malangnya, setakat ini, "WWE2K24" masih belum melancarkan versi bahasa Cina. Adakah wwe2k24 dalam bahasa Cina Jawapan: Bahasa Cina tidak disokong pada masa ini. Versi standard WWE2K24 di rantau Steam China berharga 199 yuan, versi deluxe ialah 329 yuan, dan edisi peringatan ialah 395 yuan. Permainan ini mempunyai keperluan konfigurasi yang agak tinggi, dan terdapat piawaian tertentu dari segi pemproses, kad grafik atau memori berjalan. Konfigurasi yang disyorkan rasmi dan pengenalan konfigurasi minimum:

Petua untuk menyelesaikan aksara Cina bercelaru yang ditulis oleh PHP ke dalam fail txt Dengan perkembangan pesat Internet, PHP, sebagai bahasa pengaturcaraan yang digunakan secara meluas, digunakan oleh semakin ramai pembangun. Dalam pembangunan PHP, selalunya perlu membaca dan menulis fail teks, termasuk fail txt yang menulis kandungan bahasa Cina. Walau bagaimanapun, disebabkan masalah format pengekodan, kadangkala tulisan Cina akan kelihatan bercelaru. Artikel ini akan memperkenalkan beberapa teknik untuk menyelesaikan masalah aksara Cina bercelaru yang ditulis ke dalam fail txt oleh PHP, dan menyediakan contoh kod khusus. Analisis masalah dalam PHP, teks
