Jon*_*ley 5 xml iphone character-encoding
我创建了一个基于Web的UTF-8 XML feed,用于iPhone应用程序.
在Web浏览器中查看时,如果Feed包含英镑符号,则会出现令人讨厌的XML错误:XML解析错误:未定义的实体
但是实际文件似乎是可读的.
1. iPhone NSParser是否能够读取该文件或由于此字符而失败?
2.是否可以对XML的井号进行编码?
jas*_*sso 13
如果Feed包含英镑符号,我会收到一个令人讨厌的XML错误:XML解析错误:未定义的实体
您的Feed可能使用实体£作为磅字符.£是一个HTML实体,如果没有使用与XML文档关联(或嵌入)的DTD声明它们,则无法使用这些实体.如果未定义实体,则XML解析器将报告已找到未知实体.
既然你说你的feed编码为UTF-8,你可以直接使用井字符 - 不需要实体.像LukeH建议的那样,其他解决方案是使用字符引用£,它将被XML解析器读作磅字符.
我的最终解决方案似乎适用于所有情况,即在输入时替换所有特殊字符.
public function xmlEntities($text)
{
$search = array('&','<','>','"','\'', chr(163), chr(128), chr(165));
$replace = array('&', '<', '>', '"', ''', '£', '€', '¥');
$text = str_replace($search, $replace, $text);
return $text;
}
Run Code Online (Sandbox Code Playgroud)