私は iOS アプリケーションを開発しています。私はUIWebView
魔女呼び出しJavaScript
関数を持っています。魔女はエンコードされたテキストを返します。このテキストをデコードするために、NSString
メソッドを使用していますstringByReplacingPercentEscapesUsingEncoding
が、このメソッドの問題は、このような特殊文字をデコードできないことです%u2019
。これらの文字をデコードするにはどうすればよいですか? (%uxxxx) 回答ありがとうございます
2 に答える
私の質問に答えてくれた忙しいすべての人に最初に感謝しますが、私はこの解決策を選択しました:
Unicode 文字の非標準エンコーディング: %uxxxx
。ここで、xxxx
は 4 桁の 16 進数で表される Unicode 値です。この動作は、によって指定されておらず、によってRFC
拒否されましたW3C
。の第 3 版には、この構文を使用ECMA-262
する関数が含まれていますが、各オクテットに変換してパーセント エンコードする関数も含まれています。escape(string)
encodeURI(uri)
UTF-8
JavaScript
関数 witch を使用しescape()
て、メソッドで文字列をエンコードする関数を変更しましたencodeURIComponent(uri)
。Objective Cコードでは、標準関数を使用して文字列をデコードします- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
これは、パーセント エンコーディングではなく、UTF8 エンコーディングのように見えます。Unicode エンコーディングの 1 つです。どっちか間違ってるかも。でもUTF8だと思います。
stringWithUTF8String (データがすでに NSString の場合) または initWithData:encoding: (JavaScript からのデータが NSData の場合) などのメソッドを使用してデコードする必要があります。