我正在使用 NSXMLParser
将 XML 解析到我的应用程序,但编码类型有问题。例如,这是进来的一个提要。它看起来类似于这个”
\U2026Some random text from the xml feed\U2026
我目前使用的编码类型:
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
我想使用哪种编码类型将\U2026 转换为椭圆 (...) ??
最佳答案
这里的答案是你完蛋了。他们对 XML 使用了非标准编码,但如果他们真的想要文字 \U2026
怎么办?假设您添加了一个解码器来处理所有 \UXXXX
和 \uXXXX
编码。当另一个提要希望数据是文字 \U2026
时会发生什么?
您是第一选择,最好的办法是修复此 Feed。如果他们需要对数据进行编码,则需要使用适当的 HTML 实体或数字引用。
作为后备方案,我会将解码器与 XML 解析器隔离开来。不要仅仅因为得到不符合规范的数据就创建不符合规范的 XML 解析器。有一个只会在有问题的提要上运行的后处理器。
如果你一定要有解码器,那就有更多的坏消息了。没有内置解码器,你需要在网上找一个类别或者自己写一个。
经过一番摸索,我认为Using Objective C/Cocoa to unescape unicode characters, ie \u1234可能适合你。
关于iOS - XML 到 NSString 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11023248/