我正在尝试获取UTF-8字符串的html实体,
示例: example.com/search?q=مرحبا
<?php
echo htmlentities($_GET['q']);
?>
我得到了:
مرØبا0مرØبا
这是UTF-8文本而不是html实体, 我需要的是:
مرحبا
我尝试了urldecode
和htmlentities
功能!
答案 0 :(得分:1)
将此代码添加到文件的开头:
header('Content-Type: text/html; charset=utf-8');
浏览器需要知道它是UTF-8。这个标签也可以在头部进行形式化。
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
答案 1 :(得分:0)
我认为你可以通过获取字符串中的每个字符并获得其值来解决它 来自Mark Baker的 answer 和vartec的 answer ,您可以获得:
<?php
$chrArray = preg_split('//u',$_GET['q'], -1, PREG_SPLIT_NO_EMPTY);
$htmlEntities = "";
foreach ($chrArray as $chr) {
$htmlEntities .= '&#'._uniord($chr).';';
}
echo $htmlEntities;
?>
我没有测试过。