2011-10-07 85 views
2

我得到一个网页的HTML源到的NSString这样与希腊字符地址编码

NSString* url = @"example url"; 
NSURL *urlRequest = [NSURL URLWithString:url]; 
NSError *err = nil; 
NSString *response = [NSString stringWithContentsOfURL:urlRequest encoding:kCFStringEncodingUTF8 error:&err]; 

响应的部分是这样的:2 \u00cf\u0083\u00cf\u0087\u00cf\u008c\u00ce\u00bb\u00ce\u00b9\u00ce\u00b1

我怎么能显示希腊字符因为他们应该在NSString响应中?

页面的编码是“字符集= ISO-8859-7”

+0

为了说明问题,你能提供一个有效的http:// URL风格在你上面的例子?另外,你知道编码是“iso-8859-7”,为什么你强迫响应是kCFStringEncodingUTF8?如果在编码参数中没有显式传递iso-8859-7常量,为什么不尝试stringWithContentsOfURL的“usedEncoding”版本? –

+0

迈克尔Dautermann我测试了所有可能的编码..编码:kCFStringEncodingUTF8它是其中之一。例如,有效的网址是[link](www.blog.gr)。我设法使它工作,但与utf-8页面,但没有与此 – ddarellis

回答

2

唉唉,我明白你的问题好一点点了。

Apple提供的本地NSString实现不知道如何处理iso-8859-7编码。

您有两种选择。

1)

尝试请求不同的编码为[NSString的stringWithContentsOfURL:编码:错误:],查看一个成功加载。我第一次尝试使用NSISOLatin1StringEncoding。

2)

我发现了一个第三方库(和NSString的类别扩展名)做ISO-8859-7转换。但要访问CkoCharset将花费您(或您的客户)290美元。这可能是一个值得的投资,以节省时间&麻烦。

https://chilkatsoft.com/charset-objc.asp

和文档是在这里:

http://www.chilkatsoft.com/refdoc/objcCkoCharsetRef.html