2011-11-21 62 views
3

在我的應用程序中,它接受來自服務器的XML。其中一個函數返回一個名稱列表,其中有一些帶有撇號(例如O'Reilly)。iPhone無法使用的字符串不能正常工作

<?xml version="1.0" encoding="UTF-8" ?> 
    <user id="123456" name="Pat O\'Reilly" is_qualified="false" /> 

在我的解析器我嘗試兩種不同的方法來擺脫逃生斜線的,但他們都沒有工作:

[[attributeDict valueForKey:@"name"] stringByReplacingOccurrencesOfString:@"\'" withString:@"'"] 

和/或

[[attributeDict valueForKey:@"name"] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] 

打印這些出兩包括斜線:Pat O \'Reilly。有什麼建議麼?

回答

3

你想要什麼來代替是@"\\\'"@"\'"

兩個\'是特殊字符。

對於其他類似blaname="bla is \"bla\" and bla"的文本,您甚至可能需要用@"\\\""替換爲@"\""

+0

嗨@從你的答案來看,它似乎是服務器不正確地解讀撇號?服務器應該重新調整\\\'而不是\'?對不起,如果我誤解了這個 – bennythemink

+0

試試這個你會明白:'NSLog(@「\\\'」);''和'NSLog(@「\'」);' – Dimme

+1

啊,燈泡的時刻。謝謝@迪米:) – bennythemink