Javascript window.open中的UTF8字符串将被UIWebview';s应该带着请求
在我的UIWebview中有一个带有JS的页面,它将向我的Obj C代码发送一些非英语文本。当我对Obj C代码中接收到的内容进行NSlog时,会得到乱码输出。有人能看出这里出了什么问题吗: JS代码:Javascript window.open中的UTF8字符串将被UIWebview';s应该带着请求,javascript,objective-c,utf-8,uiwebview,Javascript,Objective C,Utf 8,Uiwebview,在我的UIWebview中有一个带有JS的页面,它将向我的Obj C代码发送一些非英语文本。当我对Obj C代码中接收到的内容进行NSlog时,会得到乱码输出。有人能看出这里出了什么问题吗: JS代码: window.open("http://nothing.com?ST=nǐ",null); Obj C代码: - (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request naviga
window.open("http://nothing.com?ST=nǐ",null);
Obj C代码:
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSLog([[request URL] absoluteString]);
return YES;
}
控制台输出:
=n㽲79您使用字符串作为NSLog()的格式。与
NSLog(@"%@", [[request URL] absoluteString]);
您将获得预期的输出
详细说明:ǐ的UTF-8序列是C7 90。中的[[request URL]absoluteString]
的内容应为
如果将此用作格式字符串,“%C”将替换为随机字符
要消除百分比逃逸,请使用
NSString *url = [[[request URL] absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
非常感谢。但它仍然不起作用。。。我现在越来越紧张了。现在的问题是,如何用UTF8十六进制代码%C7%组成NSString90@Amarsh当前位置我已在我的答案中添加了这一点。