2012-08-03 93 views
0

我试图解析以下阿拉伯文内容阿拉伯语内容显示在奇怪的字符

<type id="14"> 
<data name="title">قافية</data> 
</type> 

NSString *responseString = [request responseString]; 
NSData *xmlData=[[request responseString] dataUsingEncoding:NSUTF8StringEncoding]; 

当打印我得到如下

responseString:<?xml version="1.0" encoding="UTF-8" ?><type> 
<data name="title">ÙاÙÙØ©</data> 
</type> 

请参阅This图像附着的反应,这是它如何显示我的iOS应用程序的内容

请让我知道我该如何解决这个问题

+0

看来我编码问题。尝试其他可用的编码,而不是NSUTF8StringEncoding。 – Iducool 2012-08-03 11:52:59

+0

有人请求帮助 – user198725878 2012-08-04 06:00:24

回答

1

尝试使用下面的编码,

// The following constants are provided by NSString as possible string encodings. 

enum { 
    NSASCIIStringEncoding = 1, 
    NSNEXTSTEPStringEncoding = 2, 
    NSJapaneseEUCStringEncoding = 3, 
    NSUTF8StringEncoding = 4, 
    NSISOLatin1StringEncoding = 5, 
    NSSymbolStringEncoding = 6, 
    NSNonLossyASCIIStringEncoding = 7, 
    NSShiftJISStringEncoding = 8, 
    NSISOLatin2StringEncoding = 9, 
    NSUnicodeStringEncoding = 10, 
    NSWindowsCP1251StringEncoding = 11, 
    NSWindowsCP1252StringEncoding = 12, 
    NSWindowsCP1253StringEncoding = 13, 
    NSWindowsCP1254StringEncoding = 14, 
    NSWindowsCP1250StringEncoding = 15, 
    NSISO2022JPStringEncoding = 21, 
    NSMacOSRomanStringEncoding = 30, 
    NSUTF16StringEncoding = NSUnicodeStringEncoding, 
    NSUTF16BigEndianStringEncoding = 0x90000100, 
    NSUTF16LittleEndianStringEncoding = 0x94000100, 
    NSUTF32StringEncoding = 0x8c000100, 
    NSUTF32BigEndianStringEncoding = 0x98000100, 
    NSUTF32LittleEndianStringEncoding = 0x9c000100, 
    NSProprietaryStringEncoding = 65536 
}; 
+0

感谢您的答复。在这个列表中我应该使用哪一个让阿拉伯文内容显示。 – user198725878 2012-08-03 12:18:30

+0

我不知道,但尝试使用这个列表中的每一个..只是复制粘贴所有,并为所有做NSLog .. – 2012-08-03 12:20:11

+0

尝试使用[NSString stringWithUTF8String:YOURSTRING] – 2012-08-03 12:49:39

0

首先,检查你的回应字符串(<?xml version="1.0" encoding="Change here" ?><type>)后,它看起来我问题XML编码类型。告诉你的网站开发人员为阿拉伯文内容提供正确的编码,并检查它在浏览器中的响应,如果在你尝试各种编码后显示正确。它一定会修复。