我試圖解決我的網站問題。如果我將包含£
符號的表單提交到同一頁面,它甚至會在它到達我的數據庫之前回到£
。發佈值編碼問題。 £變成£
我試圖在我的標籤以下內容:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
和
<meta charset="utf-8">
我已經嘗試了所有的這些在每一頁的開頭:
header('Content-Type: text/html; charset=utf-8');
mb_internal_encoding('utf-8');
ini_set('default_charset', 'utf-8');
我的數據庫連接字符串中也有SET NAMES
:
new PDO("mysql:host=localhost;dbname=########", "##########", "######", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
起初我還以爲是我的數據庫,因爲這些值在被存儲在那裏與這些價值 - 但我意識到,如果我提出我的表格,並有驗證錯誤,我通過拿起提交的值$_POST[]
並且它返回帶有奇怪字符的文本框中的值。
它在我的本地WAMP服務器上工作得很好,但是當我在我的現場環境中運行我的網站時 - 這是我在編碼時遇到的問題。
有沒有人有任何其他建議,我可以嘗試解決它?
您的PHP文件*保存*爲UTF-8嗎? – h2ooooooo
我可以看到它被轉移爲'â ¬'。你使用'htmlentities'修復XSS?你確定使用'UTF-8'作爲參數#3嗎?我不知道你的PHP版本,但手冊指定:*與htmlspecialchars()類似,htmlentities()採用可選的第三個參數編碼,它定義了轉換中使用的編碼。如果省略,則此參數的默認值是5.4.0之前的PHP版本中的ISO-8859-1,PHP 5.4.0及之後的UTF-8版本。* – h2ooooooo
您先生,祝您有一天!是的,我沒有在HTMLENTITIES()中包含編碼。現在我已經添加了它,顯示正常...我將把它放在一個函數中,然後現在使用它。隨意張貼,作爲答案,我會接受!謝謝soooooo多!我的WAMP服務器使用了更新版本的PHP,但是爲什麼它在我的本地而不是我的託管上工作。 – Luke