2013-12-11 39 views
0

我有一個在Ubuntu中的MySQL數據庫中存儲西班牙語文本的問題。 像西班牙語口音字符不正確地顯示爲「ñ」 這種情況發生在生產而不是在開發環境中。Ubuntu的mysql數據庫不識別西班牙語重音字符

我知道這不是一個mysql數據庫問題。由於開發數據庫和生產數據庫都完全相同,因此啓用了utf8-mb4。

開發環境 - Windows中,PHP 6.0和MySQL 5.6.14 生產環境 - Ubuntu的,PHP 5.3.2和Mysql的5.6.14-62.0

所有PHP在開發中和生產文件是UTF-8無BOM編碼

有關如何解決此問題的任何建議? 升級PHP版本會有幫助嗎?

+0

Afaik **沒有PHP 6.0 **(jet)這樣的東西。 PHP 5.5是最新的。你爲什麼不把你的開發環境與生產環境相匹配?沒有什麼比使用函數僅僅意識到它只能在比生產版本更高的PHP版本中可用 - 僅僅因爲它在開發期間可用。 – user555

+0

PHP 6.0可用。它只是不穩定的版本。因此我們還沒有實施生產。這是最後的手段。但是還有其他建議嗎? – db1

+0

5.6是最新的快照。你一定是從黑市上得到了你的PHP:p – user555

回答

1

你會得到兩個字節,看起來像這樣,這很好。如果這是在網頁上顯示的,是否正確設置了標題?瀏覽器說它將結果解釋爲什麼?

0

在這種情況下最有可能的罪魁禍首是php < - > mysql連接未設置爲utf8。請參閱http://webmonkeyuk.wordpress.com/2011/04/23/how-to-avoid-character-encoding-problems-in-php/中的「配置MySQL連接」連接

準確的語法將取決於您如何連接到Mysql。

+0

對於dev和production,PHP MySQL連接都設置爲UTF-8。正如我所提到的,代碼在Dev上完美工作。只有在製作時才能識別字符。 – db1

+0

在這種情況下,如果在瀏覽器中手動將編碼更改爲utf-8(Menu-> Tools-> Encoding in chrome),那麼我將使用另一個堆棧溢出答案並檢查字母是否正確顯示。如果可行,請嘗試在同一篇文章中的「確保Web瀏覽器知道使用UTF-8」下的建議。 –