Objective c NSString解码非标准百分比
我正在开发一个iOS应用程序,我有一个Objective c NSString解码非标准百分比,objective-c,ios,Objective C,Ios,我正在开发一个iOS应用程序,我有一个UIWebView开关调用JavaScript函数,它返回给我一个经过编码的文本,要解码此文本,我正在使用NSString方法stringbyreplacingpercentescapesusingencode,但此方法的问题是我无法解码这样的特殊字符:%u2019。我怎样才能破解那些字符?(%uxxx)感谢您的回答,它看起来像UTF8编码,而不是百分比编码。这是一种Unicode编码。我可能错了。但我认为它是UTF8 您应该使用类似stringWithUT
UIWebView
开关调用JavaScript
函数,它返回给我一个经过编码的文本,要解码此文本,我正在使用NSString
方法stringbyreplacingpercentescapesusingencode
,但此方法的问题是我无法解码这样的特殊字符:%u2019
。我怎样才能破解那些字符?(%uxxx)感谢您的回答,它看起来像UTF8编码,而不是百分比编码。这是一种Unicode编码。我可能错了。但我认为它是UTF8
您应该使用类似stringWithUTF8String(如果数据已经是一个NSString)或initWithData:encoding(如果JavaScript中的数据是NSData)的方法来解码它。首先感谢所有忙着回答我问题的人,但我选择了以下解决方案: Unicode字符的非标准编码:
%uxxx
,其中xxxx
是表示为四个十六进制数字的Unicode值。任何RFC
都未指定此行为,并且已被W3C
拒绝。第三版ECMA-262仍然包括一个使用此语法的escape(string)
函数,还有一个encodeURI(uri)
函数,该函数转换为UTF-8
并对每个八位字节进行百分比编码
我已经更改了
JavaScript
函数,它使用escape()
函数用encodeURIComponent(uri)
方法对字符串进行编码;在Objective C代码中,我使用标准函数来解码字符串-(NSString*)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
,但当我使用stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding时,它会向我返回一个空值