我目前在使用多語言站點。在某些情況下,我需要將其他 語言數據保存在數據庫中。雖然我這樣做並不能保存我輸入的實際數據。 而不是它包含「?????????????????????」。之後,我將排序規則latin1_general_ci更改爲utf8_bin。MYSQL中的latin1_general_ci和utf8_bin有什麼區別
然後它現在工作的很好。
任何人都可以解釋我可用歸類之間的差異在MySQL
在此先感謝。
FERO
我目前在使用多語言站點。在某些情況下,我需要將其他 語言數據保存在數據庫中。雖然我這樣做並不能保存我輸入的實際數據。 而不是它包含「?????????????????????」。之後,我將排序規則latin1_general_ci更改爲utf8_bin。MYSQL中的latin1_general_ci和utf8_bin有什麼區別
然後它現在工作的很好。
任何人都可以解釋我可用歸類之間的差異在MySQL
在此先感謝。
FERO
utf8_bin:字符串中的每個字符的二進制值比較字符串
utf8_general_ci:使用比較字符串:使用通用語言規則和使用不區分大小寫的比較
utf8_general_cs比較字符串一般語言規則和使用區分大小寫的比較
例如,以下內容將使用UTF8_general整理中的任何一種進行評估,但與第Ëutf8_bin歸類: 代碼:
Ä = A
Ö = O
Ü = U
隨着utf8_general_ci整理,他們也將返回true,即使不一樣的情況。
這些都不是固有的「更好」;他們只是有不同的功能。你需要選擇哪一個最適合你的特殊需求。
也許這是一個不好的做法,但我總是使用latin1。如果您使用隨機應用程序閱讀您的表格,您可能會看到奇怪的字符,但是您的應用程序設置爲charset = UTF-8,它將正確顯示給訪問者。對於一些愚蠢的原因,如果我告訴MySQL使用utf8,我的應用程序在讀取它時會破壞字符串(使用mysql_ *函數,我猜這是與這些「即將被廢棄的」函數有關的問題)。 – Havenard 2009-08-22 06:02:13