php htmlentities 亂碼怎麼辦

藏色散人
發布: 2023-03-14 14:56:01
原創
1550 人瀏覽過

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用法

#& (和) 轉成&
 " (雙引號) 轉成"
 < (小於) 轉成<
 > (大於) 轉成>

範例

$str = "John & &#39;Adams&#39;"; 
 echo htmlspecialchars($str, ENT_COMPAT); 
 echo " 
 "; 
 echo htmlspecialchars($str, ENT_QUOTES); 
 echo " 
 "; 
 echo htmlspecialchars($str, ENT_NOQUOTES); 
 ?>
登入後複製

他們的區別

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

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

效果:

$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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板