Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 解析包含'\u00';_Iphone_Objective C_Xml Parsing_Nsxmlparser_Nsxml - Fatal编程技术网

Iphone 解析包含'\u00';

Iphone 解析包含'\u00';,iphone,objective-c,xml-parsing,nsxmlparser,nsxml,Iphone,Objective C,Xml Parsing,Nsxmlparser,Nsxml,我正在使用NSXML解析器在我的iPhone应用程序中进行解析。现在一切正常,除了法语数据 例如,来自服务器的数据为Ch\u00e9rie FM 现在,在foundCharacters方法的string参数下,我只得到字符串作为'Ch',其余字符不出现。最后,我的字符串被截断为整个Cherie fm 可以做些什么 代码: 可能被多次调用,因此需要将找到的字符累积到NSMutableString中。在中有一个如何实现这一点的示例 解析器对象可以向委托发送多个 parser:foundCharact

我正在使用NSXML解析器在我的iPhone应用程序中进行解析。现在一切正常,除了法语数据

例如,来自服务器的数据为
Ch\u00e9rie FM

现在,在
foundCharacters
方法的
string
参数下,我只得到字符串作为'Ch',其余字符不出现。最后,我的字符串被截断为整个
Cherie fm

可以做些什么

代码:

可能被多次调用,因此需要将找到的字符累积到
NSMutableString
中。在中有一个如何实现这一点的示例

解析器对象可以向委托发送多个 parser:foundCharacters:用于报告 元素。因为字符串可能只是整个字符的一部分 对于当前元素的内容,应将其附加到当前 字符的累积,直到元素发生变化

现在
\u00e9
é的UTF-16,因此必须对数据进行正确编码以解析过去的\u00。因此,如果您的数据最初是一个字符串,您可以像这样从中获取数据

NSString *text = @"<node>Ch\u00e9rie</node>";
//Important or the parser will stop after Ch
NSData *utf16encode = [text dataUsingEncoding:NSUTF16StringEncoding];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:utf16encode];
NSString*text=@“Ch\u00e9rie”;
//重要提示,否则解析器将在Ch之后停止
NSData*utf16encode=[文本数据使用编码:NSUTF16StringEncoding];
NSXMLParser*parser=[[NSXMLParser alloc]initWithData:utf16encode];
得到了答案:

这个链接在我通过stackoverflow处理与我的问题类似的问题时很有帮助


希望这能帮助所有寻求解决方案的人。:)

-parser:foundCharacters:
被多次调用吗?是的..但它不会引入字符串
Ch\u00e9rie FM的其他字符。
它只在foundCharacters方法下显示
Ch
,其他字符
\u00e9rie FM
不会出现。虽然foundCharacters方法被多次调用。第二次调用foundCharacters时,您会得到什么?您如何获得正在解析的XML字符串?您是否验证了源字符串在内存中已正确组装,并且没有编码问题导致数据损坏?感谢您的响应。我很快会尝试一下,然后再给你回复。:)我发现NSXMLParser采用UTF-8作为默认编码。同样,上面的解决方案使用
NSData*utf16encode=[text-datausingencode:nsutf16stringencodeding]
NSXMLParser*parser=[[NSXMLParser alloc]initWithData:utf16encode]对我不起作用。仍然存在同样的问题。那么我们能做些什么呢?
NSString *text = @"<node>Ch\u00e9rie</node>";
//Important or the parser will stop after Ch
NSData *utf16encode = [text dataUsingEncoding:NSUTF16StringEncoding];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:utf16encode];