很多第一次安裝的朋友,就像我,都會直接選擇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
才不會照成未來搬家的問題^^
Re: 初次安裝的朋友建議使用utf8_unicode_ci
原來如此!感謝分析。
之前似乎聽說過utf8_unicode_ci比較吃資源還是耗空間,不知是否有此事?
Re: 初次安裝的朋友建議使用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。
Re: 初次安裝的朋友建議使用utf8_unicode_ci
OK,我會在下一版的 Portable APM 更新這個設定~
Re: 初次安裝的朋友建議使用utf8_unicode_ci
感謝分享!
Re: 初次安裝的朋友建議使用utf8_unicode_ci
在 my.ini / my.cnf 裡面的 [mysqld] 區段中,加上底下兩行:
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
Re: 初次安裝的朋友建議使用utf8_unicode_ci
感謝分享.... 沒想到有這樣的差別
Re: 初次安裝的朋友建議使用utf8_unicode_ci
不過 Drupal 在安裝時還是會強制使用 utf8_general_ci
Re: 初次安裝的朋友建議使用utf8_unicode_ci
是啊~不知道有什麼改法可以讓預設的utf8_general_ci改變