首頁  >  文章  >  後端開發  >  php htmlentities 亂碼怎麼辦

php htmlentities 亂碼怎麼辦

藏色散人
藏色散人原創
2021-12-21 10:21:541498瀏覽

php htmlentities亂碼的解決方法:1、使用「htmlentities($str,ENT_COMPAT,"GB2312")」;2、輸出「htmlspecialchars($str)」。

php htmlentities 亂碼怎麼辦

本文操作環境:Windows7系統,PHP7.1版,Dell G3電腦。

php htmlentities 亂碼怎麼辦?

php 中htmlentities導致中文無法查詢問題

在php中htmlspecialchars,將特殊字元轉換成HTML 格式,而htmlentities,將所有的字元都轉成HTML 字串了,下面我來分別簡單的介紹。

htmlentities用法

 $str = "John & 'Adams'"; 
 echo htmlentities($str, ENT_COMPAT); 
 echo " 
 "; 
 echo htmlentities($str, ENT_QUOTES); 
 echo " 
 "; 
 echo htmlentities($str, ENT_NOQUOTES); 
 ?> 
 
John & 'Adams'
 John & 'Adams'
 John & 'Adams'

#瀏覽器輸出:

htmlspecialchars用法

#& (和) 轉成&
 " (雙引號) 轉成"
 92e46cd5ec69e3309d97272e4b02aa52 (大於) 轉成>

範例

$str = "John & 'Adams'"; 
 echo htmlspecialchars($str, ENT_COMPAT); 
 echo " 
 "; 
 echo htmlspecialchars($str, ENT_QUOTES); 
 echo " 
 "; 
 echo htmlspecialchars($str, ENT_NOQUOTES); 
 ?>

他們的區別

這兩個函數的功能都是轉換字元為HTML字元編碼,特別是url和代碼字串。防止字元標記被瀏覽器執行。使用中文時沒什麼區別,但htmlentities會格式化中文字元使得中文輸入是亂碼

htmlentities轉換所有的html標記,htmlspecialchars只格式化& ' " c0fb6c44dfab906ebb1ef702f224b1e1 這幾個特殊符號

效果:

$str = &#39;<a href="demo.php?m=index&a=index&name=中文" rel="external nofollow" rel="external nofollow" >测试页面</a>&#39;;

echo 'htmlentities指定GB2312編碼:'.htmlentities($str,ENT_COMPAT,"GB2312").'';

echo 'htmlentities未指定編碼: '.htmlentities($str).'';

$str = &#39;<a href="demo.php?m=index&a=index&name=中文" rel="external nofollow" rel="external nofollow" >测试页面</a>&#39;;

echo htmlspecialchars($str).'';

推薦學習:《PHP影片教學

以上是php htmlentities 亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn