2011-09-30 21 views
2

可能重複:
PHP messing with HTML Charset EncodingPHP和MySQL - 電子寫成«

我們遇到正在轉化特殊字符。

這是什麼造成的?我們如何解決它?

例如:

ë becomes ë 

謝謝。

+0

這是怎麼回事?在PHP解析期間還是在數據提交到數據庫之後? – Prisoner

+2

重複,問了很多次,例如http://stackoverflow.com/questions/7522956/strange-character-in-fresh-wamp-installation和http://stackoverflow.com/questions/7501924/php-messing -with-html-charset-encoding – Fabio

+0

?是一個實際的UTF8字符。而ë是預期的utf8字符。請參閱以下有用鏈接:http://www.i18nqa.com/debug/utf8-debug.html – Julian

回答

5

那是一個UTF-8字符,你可以通過函數utf8_encode()和utf8_decode()在PHP解析它

2

字符集可以在很多地方設置。

  • 表字符集
  • 領域的charset
  • PHP,MySQL連接字符集
  • Apache的默認字符集
  • 和HTML元信息

請確保您使用UTF-8隨處可見,不要忘記正確設置連接之前第一個查詢:

mysql_query("SET NAMES 'utf8'"); 
0

如果這是一個PHP腳本的輸出,我猜你可能會考慮mb_internal_encoding()函數。

或者您可以通過HTML編碼元標記修復該問題。像裏面的<meta http-equiv="Content-Type" content="text/html; charset=utf-8">一樣。

+0

由web服務器或php腳本發送的charset HTTP標頭具有比html元標記更高的優先級。 – erenon

+0

然而,這將是一些瀏覽器的解決方案 –