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