我在本地站點中收到此錯誤。htmlspecialchars():參數中的多字節序列無效
Warning (2): htmlspecialchars(): Invalid multibyte sequence in argument in [/var/www/html/cake/basics.php, line 207]
有沒有人知道,什麼是問題或應該是什麼樣的解決方案呢?
謝謝。
我在本地站點中收到此錯誤。htmlspecialchars():參數中的多字節序列無效
Warning (2): htmlspecialchars(): Invalid multibyte sequence in argument in [/var/www/html/cake/basics.php, line 207]
有沒有人知道,什麼是問題或應該是什麼樣的解決方案呢?
謝謝。
確保指定的編碼設置爲UTF-8,如果你的文件被編碼爲這樣:
htmlspecialchars($str, ENT_COMPAT, 'UTF-8');
爲htmlspecialchars
默認字符集是ISO-8859-1(如PHP的V5.4默認字符集被轉換爲'UTF-8'),這可能解釋爲什麼事情遇到多字節字符時會變得無用。
線就在這裏。 $ charset ='UTF-8'; htmlspecialchars($ text,ENT_QUOTES,$ charset); //第207行 – gautamlakum 2010-09-27 13:06:39
對於我來說,這個問題最終成了相反的結果,當我試圖在htmlspecialchars中將其編碼爲'UTF-8'時,我的數據的字符集實際上是'ISO-8859-1'。我將charset參數轉換爲'ISO-8859-1',解決了這個問題。至少,直到我完全可以將所有內容更新爲'UTF-8'。 – Kzqai 2012-11-06 17:37:24
從PHP 5.4.0開始,'htmlspecialchars()'的第三個參數的默認值是''UTF-8'' - 這個答案應該被更新。 – 2013-03-22 12:03:53
你餵養損壞的字符數據轉換成的功能,或不指定正確的編碼。
我前一陣子有這個問題,舊的行爲(之前PHP 5.2.7我相信)是儘管腐敗返回字符串,但由於該版本將拋出此錯誤信息。
我的解決方案涉及使用// IGNORE改性劑去除損壞的數據通過iconv編寫腳本來養活我的琴絃。
(我們有其具有以UTF-8某些字符串,一些在Latin-1的通常與在列定義錯誤字符類型損壞的數據庫)。
(看着到大肚的回答的評論,我會通過看(與播放)$字符集變量的內容開始。
我同意。我通過iconv或mb_convert_encoding()傳遞了用戶數據,「from」和「to」字符集相同。通常可以選擇去除無效字符。 – 2010-09-28 03:58:53
這裏也損壞了數據,mb_convert_encoding($ var,'UTF-8')完成了這項工作。 – 2012-07-25 02:59:07
這實際上是最常見的錯誤,我得到的一個。
有時候我不使用__()翻譯 - 只是普通的德國含有AOU文本 有介意文件的編碼尤爲重要
所以一定要妥善保存包含特殊字符是UTF8文件。
鏈接已損壞。 – billynoah 2014-05-06 02:04:03
我跑就生產這個錯誤,發現它這個偉大的職位 -
http://insomanic.me.uk/post/191397106/php-htmlspecialchars-htmlentities-invalid
,似乎是在PHP中的錯誤(在CentOS至少)顯示時顯示錯誤,是對這個錯誤關!
正確的代碼,爲了不收到任何錯誤是:
htmlentities($string, ENT_IGNORE, 'UTF-8') ;
除了這個,你也可以使用str_replace
替換一些壞人的角色,以您的需求,然後使用ヶ輛功能。
看一看這個rss feed它取代了更大的HTML標誌GT;當閱讀RSS源時可能看起來不太好看。你可以用「 - 」符號或「)」等代替它。
有同樣的問題,因爲我在utf-8字符串上使用substr
。
錯誤很少出現,看似隨機。只有在多字節字符上切斷字符串時才發生錯誤!
mb_substr
解決了這個問題:)
郵行207 207請 – 2010-09-27 12:56:59