XML 文件 - 我想要像 'á, â, ã, ó' 这样的拉丁字符

Posted

技术标签:

【中文标题】XML 文件 - 我想要像 \'á, â, ã, ó\' 这样的拉丁字符【英文标题】:XML File - I'd like to latin characteres like 'á, â, ã, ó'XML 文件 - 我想要像 'á, â, ã, ó' 这样的拉丁字符 【发布时间】:2011-09-30 11:01:12 【问题描述】:

我正在使用 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>

所以,当我解析和提取''时,内容是: 'á fora fazia um grande contraste com o escuro do cômodo'

代替 'A luz forte do sol lá fora fazia um grande contraste com o escuro do cômodo'

我不知道为什么,但是当出现这样的单词“á”时,它会切断短语。所有标签都会发生这种情况,里面总是有这样的东西 'á,ó,ô,é...'

出于这个原因,我想知道是否与我的 XML 文件中的“编码”有关。

我用于加载我的 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】:

首先要检查的是在 XML 文件顶部声明的编码是否实际上是文件的编码内容。老式的检查方法是查看十六进制转储或八进制转储的输出,然后验证像 í 这样的字符是否由预期的两字节序列表示。更简单的检查方法是在理解字符编码概念的编辑器(几乎所有编程编辑器)中查看文件,并查看文件所用的编码。如果它与声明不匹配,XML 解析器将误解文件。

【讨论】:

以上是关于XML 文件 - 我想要像 'á, â, ã, ó' 这样的拉丁字符的主要内容,如果未能解决你的问题,请参考以下文章

IOS - Unicode Unsign

没有 BOM 的 UTF-8 html 显示奇怪的字符

fontstr.h头文件

nodejs将原始图像数据写入jpeg文件?

样式表在服务器上出现损坏

如何恢复西里尔短语“Âñòîðîíó Äîæäÿ”的正确字符编码?