我正在开发一个iOS应用程序,我有一个UIWebView
女巫调用JavaScript
函数回复给我一个文本编码,解码这个文本我正在使用NSString
方法{{ 1}}但是这个方法的问题是我无法像这样解码spécialcaractérs:stringByReplacingPercentEscapesUsingEncoding
。我怎么能解码这些caracteres? (%uxxxx)感谢您的回答
答案 0 :(得分:0)
看起来像UTF8编码,而不是百分比编码。这是Unicode编码之一。我可能错了哪一个。但我认为这是UTF8。
你应该使用像stringWithUTF8String这样的方法解码(如果数据已经是NSString)或initWithData:encoding :(如果来自JavaScript的数据是NSData)
答案 1 :(得分:0)
首先感谢每一位回答我问题的忙碌者,但我选择了这个解决方案:
Unicode字符的非标准编码:%uxxxx
,其中xxxx
是表示为四个十六进制数字的Unicode值。任何RFC
都未指定此行为,W3C
已拒绝此行为。第三版ECMA-262
仍包含使用此语法的escape(string)
函数,但还包含encodeURI(uri)
函数,该函数转换为UTF-8
并对每个八位字节进行百分比编码。
我更改了使用JavaScript
函数的escape()
函数,使用方法encodeURIComponent(uri)
对字符串进行编码;在Objective C代码中,我使用标准函数来解码我的字符串- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding