2010-09-08 46 views
0

我使用谷歌翻譯與我的網站翻譯短,經常使用的短語。我不是每次都要求Google翻譯一次,而是考慮將翻譯緩存在MySQL表中。我應該使用什麼整理來在表中存儲外來字符?

無論如何,它適用於拉丁字符,但對亞洲人等其他人無效。什麼整理/ charset將是最好的使用?

而且 - 我已經嘗試了默認(latin1_swedish_ci)和utf8_unicode_ci

回答

2

其中之一應該做的伎倆: http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html

此外,作爲MySQL的文檔中看到:

客戶端應用程序需要 與服務器通信使用 Unicode應設置客戶端 字符集accordin甘氨酸;爲 示例,通過發出SET NAMES 'utf8' 聲明。

所以,如果你選擇utf8_unicode_ci編碼,則需要執行SET NAMES 'utf8'查詢每一個連接到你的數據庫(mysql_select_db(),或者你使用任何後運行)。

+0

哦,我試過ucs2和utf8,但他們不工作。這可能是PHP或者是丟失了字符的查詢,或者它可能不支持我正在測試的異國語言。我想我會將翻譯視爲二進制數據,並將base64編碼爲其他內容。 – Matt 2010-09-08 15:38:04

+0

是的,你也需要設置它的連接。我編輯過。 – 2010-09-08 15:38:35

+0

好的,我添加了mysql_query(「SET NAMES'utf8'」)或死(mysql_error());就在我的查詢之前,但它不起作用。是否必須在db被選中後才被直接發送,所以在它之前沒有其他查詢可以運行?我的代碼不夠簡單,不足以讓我輕鬆完成,但如果需要,我可以。 – Matt 2010-09-08 15:47:59

1

排序規則與國際字符無關。 Charset的確如此。
通常的解決方案是utf8。

不知道你是什麼意思「我試過utf8_unicode_ci」,但至少你必須告訴數據庫,你的數據是什麼字符集。 SET NAMES utf8查詢可以做到這一點,如果你的谷歌的數據使用該字符集

相關問題