我有一個存儲用戶名,密碼和基本信息的DB。然而'信息'只存儲英文字符。如何處理多語種MySQL查詢?
如何以不同的語言存儲數據,比如說英語,法語,俄語,漢語,日語,阿拉伯語等?我意識到默認排序規則不支持。
什麼是最好的解決方案,你們如何解決它?
我有一個存儲用戶名,密碼和基本信息的DB。然而'信息'只存儲英文字符。如何處理多語種MySQL查詢?
如何以不同的語言存儲數據,比如說英語,法語,俄語,漢語,日語,阿拉伯語等?我意識到默認排序規則不支持。
什麼是最好的解決方案,你們如何解決它?
將整個數據庫以及表的默認排序規則更改爲utf8_general_ci。沒有理由遭受(用這種自由形式的數據)。
ALTER DATABASE db CHARACTER SET utf8 COLLATE utf8_general_ci;
ALTER TABLE tbl CONVERT TO utf8
ALTER TABLE tbl CHARACTER SET utf8 COLLATE utf8_general_ci;
閱讀關於this page末尾的幾個疑難解答。
與普遍認爲的相反,*排序規則*與*編碼沒有多大關係! – deceze 2012-03-15 22:50:48
在MySQL中,排序規則與編碼非常相關。設置'COLLATE utf8_something'意味着'CHARACTER SET utf8'。在任何情況下,爲了能夠處理存儲在這些UTf-8列中的數據,您需要確保您的應用程序使用'SET NAMES'utf8''或可用的更好的基於庫的方式來通過與MySQL的連接來說明UTF-8,特定的接口(例如PHP的'mysql_set_charset'或python-mysql的'charset'構造函數參數)。 – bobince 2012-03-15 23:14:29
utf-8 ---------- – 2012-03-15 21:52:53
我試過了,對於除英語以外的其他語言,我仍然感到怪異的字符。你只是爲那個特定的領域設置排序規則,還是需要做更多的事情? – NoobDev4iPhone 2012-03-15 22:13:52
還有更多。見例如http://stackoverflow.com/questions/8544312/getting-html-entities-for-all-major-currencies/8544381#8544381的列表 – 2012-03-15 22:29:32