- 所以我有一堆MySQL表誰的VARCHAR字段是utf8_general_ci
- PHP的DEFAULT_CHARSET是UTF8
- 最後,我設置的字符集爲utf8在我的HTML頭
<meta charset="UTF-8">
此數據庫中的文本是用幾種不同的語言從英語寫入中文。的MySQL,PHP和HTML字符集愁楚
很多'e's都有他們的口音,他們使用時髦的語錄。
沒有絨毛,這些特殊字符全部輸出到屏幕上作爲黑色鑽石中的問號(2除外)。
通過簡單地在utf8_encode($string)
所有包裹的變量是很好...再次,除了那些2.
第一個問題:爲什麼我需要使用utf8_encode
如果一切都已經設置呀?
第二個問題:幾個條目使用♀和♂(它們就像那樣存儲在數據庫中)。這些顯示爲簡單的問號(無黑鑽石)。不管我對他們做什麼,他們都不會改變。我已嘗試過utf8_encode
,utf8_decode
,htmlspecialchars
和htmlspecialchars_decode
的所有可能組合。沒有。唯一的解決方案是將數據庫條目更改爲例如使用♀
,然後沒有任何絨毛,它就會正確輸出。爲什麼?
如果您的數據不是UTF-8,那麼您需要使用'utf8_encode',如果不是,則意味着鏈接中的某些內容從HTML - >瀏覽器 - >服務器 - > PHP - >數據庫連接 - >數據庫。 – tadman
能否詳細說明一下?我可能錯過了什麼?這也不能解釋爲什麼這兩個男性和女性角色不工作 –
你需要確保鏈中的每一步都是UTF8或什麼東西會被打破。我不確定你的問題在哪裏,但你必須仔細測試每個階段。 – tadman