我正在存储我的原始html ......
nl2br(htmlentities($this->input->post('raw_html')))
在我的数据库中,数据看起来像这样......
<ul> <li>Improve our understanding of this issue</li> <li>Strengthen your listening and writing skills</li> </ul>
当我尝试从我的数据库中显示标记时,我使用它:
echo html_entity_decode($html_from_db, ENT_COMPAT, 'UTF-8');
但是我在浏览器中显示了这个输出:
<ul> <li>Improve our understanding of this issue</li> <li>Strengthen your listening and writing skills</li> </ul>
Lesson name
html实体显示在我的源代码中......所以没有实体被解码。
为什么这不起作用?
答案 0 :(得分:1)
当您使用htmlentities
编码时,可能会对其进行两次编码。见函数参数:
function htmlentities ($string, $quote_style = null, $charset = null, $double_encode = true) {}
所以你可以试试这个:
nl2br(htmlentities($this->input->post('raw_html'), ENT_QUOTES, 'UTF-8', false))