我已將我的網站發佈到服務器,但由於字符問題我正在撕掉我的頭髮。儘管我的任何愚蠢(不清楚或不匹配的字符集),但本地它一切正常。讓我們舉一個表作爲例子,因爲它滿足了我們的條件:發佈PHP + MySQL網站時出現字符集問題
我的本地方案
- PHP 5.3.0
- 的Apache 2.2.11
- 的MySQL 5.1.36社區日誌
- 連接:utf8_general_ci
- 數據庫:latin1_general_ci
- 表:latin1_general_ci
- 谷歌Chrome瀏覽v 12.0.742.100 W /字符集ISO-8859-1
- PHP頁面字符集設置爲:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- 地方:注意單詞 「本草」 - 來從HTML - 和 「Notícia」 - 來自數據庫 - 都能夠正確顯示的口音:
我的主場景
- PHP 5.3.6
- 運行IIS的FastCGI
- MYSQL 5.5.13
- 連接:utf8_general_ci
- 數據庫:latin1_general_ci
- 表:latin1_general_ci
- 谷歌Chrome瀏覽v 12.0.742.100 W /字符集ISO-8859-1
- PHP頁面字符集設置爲:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
- 主持人:注意如何 「Notícia」 有脫穎而出的麻煩:
我讀過一些東西,包括這個very good article爲開發人員建立了一個共同點。
我已經考慮:
- 問題是在表中的實際數據(儘管具有latin1_general_ci覈對也許實際存儲數據不同地this mate states it它);
- 與IIS有一些討厭的關係的問題(當一個運行在IIS下的PHP經常有非IIS傾向);
- 我innacurate編程技能再次對我玩花招
人提供一些幫助?我可以提供一些巴西葡萄牙語課程,一些關於精神生活的建議或者只是一些關於任何事情的聊天,但是我必須解決這個問題,你可以幫我。
在此先感謝,
數據來自MySQL?你是如何去傳輸數據庫的? – datasage
只有按鈕「A Gazeta」, 「Tribuna」和「NotíciaAgora」正在上演來自mySQL。爲了傳輸,我導出了表結構和數據,複製SQL語句並在主機數據庫中執行它們,全部使用phpMyAdmin。 – marquito
我不會推薦使用除UTF8以外的任何內容來進行整理/編碼。將utf8_general_ci設置爲你的數據庫,並確保所有表/列具有相同的排序規則。在你的html head標籤中使用UTF8。你已經列出你的連接,html和db有不同的編碼。它似乎在你的機器上工作,但不能保證它會在其他地方飛行。 –