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

3

我遇到了和这个问题完全相同的困扰,但是没有得到什么好的回答。

我正在尝试解析一个使用ISO-8859-1编码的XML文件,但是每当遇到一个带有重音符号的单词,它就会被截断并且不能正常显示。

Example: 

Original Word: Interés 

Word Shown: és

如果该问题没有得到足够的关注,可以在其下面添加评论,要求进一步扩展它。 - Nightfirecat
可能是Problemas com Parse XML - Iphone的重复问题。 - bta
你收到这个问题的答案了吗? - user1191701
2个回答

1

你假设你只会得到一个-parser:foundCharacters:代理方法来处理文本。但实际上,这是错误的。你会得到两个调用-parser:foundCharacters:的方法,第一个是重音字符之前的文本,第二个是它之后的文本。你的日志甚至证明了这一点。

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


1

你必须使用NSMutableString,并在foundCharacters方法中附加字符。这就是为什么你的字符串会被截断。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接