2011-10-07 55 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