本文的作用是為了全方位的避免因使用UTF-8編碼而產生的亂碼問題,不包含具體的亂碼解決方案和編碼轉換的內容。對於UTF-8編碼的深入了解,請參閱:《PHP匹配UTF-8中文字符的正則表達式》
1、編輯器:不要使用任何微軟的編輯器,什麼Frontpage,Web Designer,記事本,寫字板什麼的,能丟的全部丟開,因為這些編輯器會在你的UTF-8文檔前面產生BOM,關於BOM的具體說明,可以在 這裡 找到,當年我直接拿記事本轉UTF-8覆蓋原文件,造成大量代碼損毀,至今記憶猶新。
2、MySQL數據庫:注意建庫,建表,建字段(注意有三處)的時候,都要選用utf8_general_ci的整理格式(Collation),在PHP使用mysql_connect()函數連接數據之後,需要加上一句:
mysql_query('set names "utf8"');
3、PHP:
使用mb庫,不要使用iconv庫。
使用preg而不要使用ereg來處理字符。
使用htmlentities()函數,html_entity_decode()函數的時候要帶上第三個參數:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<?php
$str = "<a href='test'>中文</a>";
echo htmlentities($str,ENT_COMPAT,"UTF-8"); //顯示(源代碼裡面) <a href='test'>涓?