XML文件 - 我想像'á,â,ã,ó'一样拉丁字符。

时间:2011-07-07 13:00:16

标签: encoding utf-8 nsxmlparser latin1

我正在使用NSXMLParse来解析我的file.xml。它确实有效,但是当我提取内部文本这个file.xml时,有些单词会被剪切掉,我想这是一个编码问题。

例如,我的file.xml的一小部分:

<?xml version="1.0" encoding="UTF-8" ?> 
<book>
<titulo>Síndrome de Tietê</titulo> 
<pagina numero="1">
<linha numero="1">A luz forte do sol lá fora fazia um grande contraste com o escuro do cômodo.</linha> 
<linha numero="2">Poucas pessoas. Móveis rústicos e panelas penduradas, com teias de aranha. Gente magra.</linha> 
</pagina>
</book>

所以,当我解析并提取''时,内容是: 'áforafazia um grande contraste com o escurodocômodo'

INSTEAD OF 'a luz forte dosolláforafazia um grande contraste com o escurodocômodo'

我不知道为什么,但是当出现这样的单词“á”时,它正在削减这句话。它发生在所有标签上,总是有像'á,ó,ô,é......这样的内容......

出于这个原因,我想知道是否与我的XML文件中的'enconding'有关。

我的加载XML文件的代码:

-(id)loadXMLByURL:(NSString *)fileName:(NSString *)extName {
    NSString *xmlFilePath = [[NSBundle mainBundle] pathForResource:fileName ofType:extName];
    NSData *xmlData = [NSData dataWithContentsOfFile:xmlFilePath];
    xmlParser = [[NSXMLParser alloc] initWithData:xmlData];
    xmlParser.delegate = self;
    [xmlParser parse];
    return self;
}

调用上述功能:

xmlCon = [[XMLControl alloc] loadXMLByURL:@"geracao":@"xml"];

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

要检查的第一件事是在XML文件顶部声明的编码是否实际上是文件编码的内容。旧的检查方法是查看十六进制转储或八进制转储的输出和验证像í这样的字符由预期的双字节序列表示。更简单的检查方法是在编辑器中查看文件,该编辑器了解字符编码的概念(几乎任何编程编辑器),并查看文件所在的编码。如果它与声明不匹配,XML解析器将会误解文件。