2012-11-10 70 views
3

我剛剛發現了一個包含重音標記的城市名稱的問題,例如LaCañada,Peñasco等不會保存到我的數據庫中。通過對另一個SO問題的回答,What is the best collation to use for MySQL with PHP?,我試着將我的數據庫和varchar的排序規則類型從latin1_swedish_ci更改爲utf8_general_ci,但仍拒絕該字符。我也試過utf8_unicode_ci,結果相似。爲什麼我的mysql數據庫不接受重音標記?

我已驗證保存工程如果我刪除客戶端上的重音標記,但理想情況下我想保留在那裏,因爲這是城市的真實名稱(根據谷歌地圖反正)。

你使用什麼整理類型來支持?

附加信息:使用MySQL,phpMyAdmin的,和CakePHP Android應用程式爲客戶


感謝您的建議爲止。我猜這現在變成了一個CakePHP問題......我注意到,默認utf8 is not enabled,所以我啓用它在我的app/config/database.php文件中。我將文件FTPed到服務器,並再次嘗試,但沒有任何運氣。我是否需要重新部署應用程序以啓動這些db配置更改,還是我應該檢查應用程序的另一個區域?第一次CakePHP用戶在這裏。

+1

大多數utf8歸類不應該有這個字符的任何問題。你的'INSERT'語句是怎麼樣的?你的連接到mysql數據庫使用utf8嗎? – Bjoern

+0

latin1字符集支持 - 。我認爲問題不在於字符集。 –

+0

我記得有一個與'''符號類似的問題,雖然我沒有使用蛋糕,但是應用程序中有一個蛋糕變形器。你使用Cake/Utility/Inflector.php進行過濾嗎? –

回答

3

整理僅僅是字符排序的順序,這是執行比較的必要步驟。它與數據如何存儲無關(除非給定的歸類特定於某種編碼)。

字符編碼是一個字符到用於存儲它們的二進制表示,它決定了支撐字符集的映射。

但是,僅僅因爲數據庫/表/列使用特定的字符編碼不是故事的結尾。您還必須考慮應用程序中以及與其他組件(如MySQL)的接口中使用的編碼。

雖然它的目標是PHP,UTF-8 all the way through幾乎涵蓋了所有你需要考慮的事情。

+0

您必須是正確的,它必須與我的Web應用程序中的字符編碼相關。我已經用cakephp嘗試了幾件事情,並用更多的細節更新了我的問題。 –

相關問題