解析CDATA时出现问题

时间:2011-04-26 17:34:03

标签: iphone objective-c nsxmlparser cdata

   <text><![CDATA[øCu·l es tu principal reto, objetivo o problema?]]></text>

在解析上面的标签时,它崩溃了。 如何解析CDATA

同样的行出现在这样的窗口中......

<text><![CDATA[¿Cuál es tu principal reto, objetivo o problema?]]></text>

由于特殊字符,解析器崩溃。

为什么他们在Mac中转换为特殊字符..? 怎么解决这个?

1 个答案:

答案 0 :(得分:0)

对于一个人来说,你在这里发布的字符串看起来像编码出了问题。 “ø”不是西班牙人。

您使用的xml解析器是什么?我猜这个字符串中的某个地方是一个字符,可能是隐藏的,或者它可能是“ø”,这会让你的解析器崩溃。

编辑(响应OP的评论)

我会尝试猜测发生了什么,希望你能用我的猜测来解决实际发生的事情。因此,当您创建xml文件时,您使用了一些编辑器。该编辑器使用了特定的编码。这意味着它使用从字符到字节的特定映射(将字符编码为字节)将屏幕上的字符转换为磁盘上的字节。有许多不同的编码,一种常见的编码称为Latin-1。所以我们假设文件是​​使用Latin-1编码的。创建它之后,您将文件传输到另一台机器上,在另一台机器上您在另一台编辑器中打开它。现在,新编辑器如何知道文件的编码?答案是它可能试图猜测编码。现在问题就出现了:猜测错误并使用Latin-1以外的编码解释字节。

当你在编辑器中打开(乱码)文件时,尝试从菜单中选择不同的编码。正确显示所有特殊字符的那个可能是创建文件时使用的字符。

编辑2 但我的另一个问题仍然是:你使用的xml解析器是什么?

编辑3

好的,所以现在当你写“崩溃”时,你真的意味着崩溃还是只是回来?你收到错误信息吗?如果有,那是什么?你能做到以下几点:

从此行中删除有趣的字符,然后运行以下代码:

<text><![CDATA[l es tu principal reto, objetivo o problema?]]></text>

它还会崩溃吗?