2016-03-04 92 views
0

試圖URL解碼與在IOS /目標C特殊字符組成的字符串URL解碼特殊字符 - AAO

串爲 「F%F6rv%E5nad」

試圖使用

CFURLCreateStringByReplacingPercentEscapesUsingEncoding() 
該方法

[stringToConvert stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

兩個返回null。

我想回到 「Förvånad」

+0

的正確解碼字符串返回一個畸形的UTF-8序列。所以,給定的字符串「Förvånad」沒有正確編碼。爲了百分比編碼正確,任何字符串必須首先表示爲UTF-8字節序列。然後,百分比編碼應用於八位組。請參閱[RFC 3986](https://tools.ietf.org/html/rfc398) – CouchDeveloper

回答

2

的字符串編碼Latin1的

NSString *string = @"f%F6rv%E5nad"; 
NSString *result = [string stringByReplacingPercentEscapesUsingEncoding:NSISOLatin1StringEncoding]; 
NSLog(@"%@", result); // förvånad 
+0

這些代碼也可用於UTF-8。 – trojanfoe

+0

@trojanfoe不是在我的機器上,也不是在Swift操場上,也不在ObjC – vadian

+0

我用[本頁](http://www.utf8-chartable.de/)檢查代碼。然而,0x7f以上的字符需要兩個字節進行編碼,所以我不認爲它們可能是UTF-8,所以我認爲你是對的。 – trojanfoe