我对在RSS中显示的数据使用htmlentities,我有unicode字符,因此它们显示像Á
这样的服务,如http://feedvalidator.org/这样的服务显示为无效。
如何将此实体添加到xml(如使用命名空间),还是应该使用不同的函数来转义& < >
之类的字符?
答案 0 :(得分:2)
使用htmlspecialchars
转义XML中具有特殊含义的字符。
对其他字符使用正确的字符编码。
(略读htmlentities
的文档表明,如果您不打算使用正确的字符编码,则可以传递ENT_XML1
并获取XML兼容的数字实体。
答案 1 :(得分:2)
这是在php 5.3.3中运行的功能
function encode($string) {
$result = '';
foreach (str_split(utf8_decode(htmlspecialchars($string))) as $char) {
$num = ord($char);
if ($num > 127) {
$result .= '&#' . $num . ';';
} else {
$result .= $char;
}
}
return $result;
}