普通ASCII碼空格爲32,可是瀏覽器會對普通空格進行自動歸併,php
也就是若是你輸入10個0x20的空格在HTML頁面裏面,可能會被合併成一個空格。html
若是想要一致的呈現多個空格,就要用到 ,這個空格的編碼爲160,爲西歐ISO-8859-1編碼標準。瀏覽器
爲了讓通過HTML編碼的內容還原爲原來的文本字符,能夠使用html_entity_decode方法,編碼
但這樣問題就來了,一般HTML編碼內容爲UTF8格式的,html_entity_decode在瀏覽器UTF8編碼環境下會把spa
 轉爲一個黑色四方形狀的亂碼。只有切換爲ISO-8859-1才能正確顯示爲空格。code
因此在使用html_entity_decode以前,須要先把 替換掉(str_replace),這樣就能夠避免亂碼問題。orm
示例:
htm
對下面這段字符串直接進行HTML解碼後,會出現亂碼的問題:ci
$str = '真愛粉們,當時活動的一些精選片斷吧~ </font></div><div><'; $content = html_entity_decode($str); print_r($content );
結果:字符串
先將空格 替換掉,而後再應用html_entity_decode解碼後,就不會出現問題了。
$str = '真愛粉們,當時活動的一些精選片斷吧~ </font></div><div><'; // 替換空隔符 $content = str_replace(" ","[space_code]",$str); $content = html_entity_decode( $content ); // 轉換以後,再將空格符替換回來 $content = str_replace("[space_code]"," ",$content); print_r($content );
還有一種簡單的方法,htmlspecialchars_decode( )不用轉換空格就能夠轉化而且不出現亂碼:
$str = '真愛粉們,當時活動的一些精選片斷吧~ </font></div><div><'; $content = htmlspecialchars_decode($str);