0

UIWebviewにJSを含むページがあり、英語以外のテキストをObjCコードに送信します。Obj Cコードで受け取ったもののNSlogを実行すると、出力が文字化けします。誰かがここで何が悪いのかを見ることができますか?

JSコード:

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;

}

コンソール出力:

http://nothing.com?ST=n㽲79

4

1 に答える 1

1

文字列をの形式として使用しますNSLog()。と

NSLog(@"%@", [[request URL] absoluteString]);

期待どおりの出力が得られます。

詳細な説明:ǐのUTF-8シーケンスはC790です。inの内容[[request URL] absoluteString]shouldStartLoadWithRequest

http://nothing.com/?ST=n%C7%90

これをフォーマット文字列として使用すると、「%C」はランダムな文字に置き換えられます。

パーセントエスケープを取り除くには、次を使用します

NSString *url = [[[request URL] absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
于 2012-08-26T16:01:44.333 に答える