您在這裡

初次安裝的朋友建議使用utf8_unicode_ci

很多第一次安裝的朋友,就像我,都會直接選擇utf8_general_ci

感覺上都一樣,也不會有什麼差別,但是其實是有差別的,

當你的文章之中,有使用到其它國家的語言時,例如德文或阿拉伯文字

起先完全不會感覺到有什麼不好的,也都一樣,直到有一天我忽然想要重灌,

我發現有少部分的字元會變成亂碼,一開始真的是找不到原因,

後來用GOOGLE找了一下

發現了這一篇

utf8_general_ci 在轉換時速度比較快
utf8_unicode_ci 在轉換時比較精準

轉換?怎麼講呢?
簡單說就是當資料要從一個編碼換成另外一個編碼時,
mysql 要在兩個 codepage 裡面找出來相對應的字元位置在哪裡。
對 utf8_general_ci 來說,來源 codepage 裡面的一個字元只能對應到目標 codepage 裡面的一個字元,
而 utf8_unicode_ci 則可以把來源 codepage 裡的一個字元對應到目標 codepage 裡的多個字元(或反過來)。
例如德文裡的 ß 要轉換成英文的時候如果是用 utf8_unicode_ci 轉換會變成正確的 ss ,
但是如果用 utf8_general_ci 的話則會變成單一的 s 而已。

所以如果可以的話請盡量用 utf8_unicode_ci 而不要用 utf8_general_ci ,
雖然對 multibyte 字元來說這兩個都沒差,
但是 utf8 的網頁誰也不知道哪天會不會有這種字元出現在你的網頁上,
所以如果設成 utf8_unicode_ci 你就不需要擔心貼上去之後資料在轉換間遺失了。

看完後各位應該知道差異了吧^^

所以如果各位朋友是第一次安裝的話,

則非常建議你將SQL資料夾編碼改使用 utf8_unicode_ci

才不會照成未來搬家的問題^^

關於 花水木 大大的問題
我實際去請教對岸的朋友。

經過解釋之後大至了解到差異性了^^

所以特別來分享一下心得

utf8_general_ci,速度較快,但是這主要影響像是越南和俄羅斯或是其它少數民族,例如:Udmurt 、Tatar、Bashkir和Mari。

如果妳的網站絕不可能出現這些人來留言的話,則不需要擔心,但是凡事總有萬一。

utf8_unicode_c,校對比較精準,速度上跟utf8_general_ci其實不相上下,那為什麼utf8_unicode_c會被說比較慢呢???

答案很簡單,其實這只有在特殊文字出現時,才會發生速度上的差異,例如德文裡的 ß,

utf8_general_ci翻譯出來為s

utf8_unicode_c翻譯出來為ss

很明顯的utf8_general_ci翻譯雖然不正確,但是它只有一個編碼而己,所以比較快。

相對的utf8_unicode_ci翻譯出來的非常正確,但不論如何它都是二個字元,所以比較慢。

重點就是除非你整個網站都是特殊文字,不然你跟本就不可能發現這之間的差異性。

所以會比較推薦utf8_unicode_ci編碼來安裝drupal。