2011-07-07 22 views
2

我使用NSXMLParse解析我file.xml。它確實有效,但是當我將這個file.xml文件解壓縮到內部時,一些單詞被切割了,我想這是一個編碼問題。XML文件 - 我想拉美characteres像「A,A,A,O」

例如,我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> 

所以,當我分析和提取的 '',內容是: 「á論壇fazia庵大contraste COMØescuro做COMODO」

INSTEAD OF ‘A盧斯的強項做溶膠Lá論壇fazia庵大contraste COMØescuro做COMODO’

我不知道爲什麼,但它的切割短語w ^母雞出現這樣的詞'á'。這是所有標籤,總是有這樣的東西里面的東西'á,ó,ô,é...'

由於這個原因,我想知道是否與我的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"]; 

任何想法?

回答

0

首先要檢查的是,在XML文件頂部聲明的編碼是否實際上是文件的編碼方式。檢查的老式方法是查看十六進制轉儲或八進制轉儲的輸出並驗證像í這樣的字符由預期的雙字節序列表示。更簡單的檢查方法是在編輯器中查看文件,該編輯器理解字符編碼的概念(幾乎所有編程編輯器),並查看文件所在的編碼。如果它與聲明不匹配,XML解析器會誤解文件。