我目前正在過度使用我的網站,並希望隨後使用正確的字符編碼,因爲到目前爲止我有一些這樣的麻煩。UTF8字符編碼,htmlentities和跨站點腳本
我HTML和PHP文件進行編碼與UTF8,我的HTML頭看起來是這樣的:
<!DOCTYPE html><html><head><meta charset="utf-8" />.....
我用的MySQLi和配置我的連接是這樣的:
$DB->set_charset("utf8");
我的數據庫使用utf8_general_ci排序規則。
所以我認爲我正確地設置了一切。
現在我的問題: 爲了避免跨站點腳本我everytimes使用ヶ輛()顯示數據時,用戶爲了打破HTML字符,如<>「'
echo(htmlentities($str, ENT_QUOTES, "UTF-8"));
但是,當已經保存到我的數據庫$ STR包含其他特殊字符,如ÄäÖöÜü& SSAE他們也得到壞了,我的瀏覽器只顯示只有& AUML;等等...
哪裏是我的錯,什麼是實現不受XSS和顯示安全正確的方法? utf-8個字符?我想我可能需要在這些主題內完成一次速成課程。 This solution與我的問題不符,因爲我已經使用此參數。
如果你能幫助我解決這個問題,我將非常感激。 致以問候 Lukas
它可能是一個區域設置問題?如果您將php進程的語言環境設置爲UTF8,那麼該如何處理? –
嘿,謝謝你的回答!你的意思是我的php.ini中的default_charset設置?我將它設置爲「UTF-8」,但它沒有產生任何效果......我不確定htmlentities對我是否是正確的功能[鏈接](http://php.net/manual/en/function。 htmlentities.php)?什麼意思是「所有適用的字符」? – lukasl1991