2012-04-23 101 views
0

我有Json響應和重音字符的問題。我有這樣的代碼片;重音編碼問題JSON響應

html = "Ubicado en pleno campo de Barcelona, a 5 minutos del n\U00facleo urbano de la ciudad y a 7 kil\U00f3metros de las playas y el Aeropuerto."; 

我如何獲得:

SBJsonParser *parser = [[SBJsonParser alloc] init]; 

     NSString *responseString = [[NSString alloc] initWithData:self.multipleData encoding:NSASCIIStringEncoding]; 

     NSDictionary *results = [parser objectWithString:responseString ]; 

我曾嘗試UTF8編碼,拉丁編碼,JSON原有的語法分析器,touchJson解析器,和最好的結果,我在包含口音的NSDictionary價值得到這個值NSString與口音正確嗎?

非常感謝

+0

如何使用Web視圖呈現時的外觀? – deanWombourne 2012-04-23 15:48:42

+0

儘管節點叫做html,但它不是一個web視圖。抱歉。非常感謝。 – theomen 2012-04-23 16:14:25

回答

1

數據實際在哪種編碼?您需要使用該編碼來創建字符串。看看原始字節。如果您看到重音u(\ u00FA)的C3 BA,那麼數據將以UTF-8格式顯示。如果您看到00FA,如果所有字符都是兩個字節,則爲UTF-16,否則爲ISO-LATIN-1。

得到了正確的編碼後,你怎麼實際上打印字符串來看它?例如,有時NSLog或調試器將非ASCII字符替換爲轉義序列。你有什麼可能實際上工作。

+0

如果試試這個:NSString * responseString = [[NSString alloc] initWithData:self.multipleData encoding:NSUTF8StringEncoding]; NSLog(@「responseString%@」,responseString); responseString記錄返回一個空值,這很奇怪。謝謝。 – theomen 2012-04-23 16:13:28

+0

@theomen:這意味着你的數據不是UTF-8(檢查NSString的文檔),如果數據無效,init方法返回nil。 – JeremyP 2012-04-23 16:38:02

+0

非常感謝。順便說一句,我如何能像以前說的那樣用非轉換序列替換非ASCII字符? – theomen 2012-04-23 16:51:27