使用带有ISO-8859-1的NSXMLParser会截断带重音的单词

时间:2011-10-18 03:38:43

标签: objective-c ios nsxmlparser diacritics iso-8859-1

我遇到与此question相同的问题,但没有得到任何好的答案。

我正在尝试使用ISO-8859-1编码解析XML文件,但每次都有一个突出的单词时,它会被截断并且无法正常显示。

Example: 

Original Word: Interés 

Word Shown: és

2 个答案:

答案 0 :(得分:1)

您必须使用NSMutableString并在foundCharacters方法上附加chars。 这就是你的字符串被截断的原因。

答案 1 :(得分:1)

您假设您只为文本获得一个-parser:foundCharacters:委托方法。在这种情况下,那是错的。你有两次调用-parser:foundCharacters:,第一次是重音字符的文本,第二次是后面的文本。你的日志甚至证明了这一点。

因此,您需要做的是,当您启动一个新元素时,您还应该初始化一个新的NSMutableString*实例。然后,当您获得-parser:foundCharacters:时,附加到此字符串而不是替换它。当标记关闭时,此字符串现在包含标记中的所有文本,而不是仅包含最后一个文本块。