質問

次のようなものに出会いました:

String sample = "somejunk+%3cfoobar%3e+morestuff";

印刷されたサンプルは次のようになります:

  

somejunk + <foobar <!> gt; + morestuff

それはどのように機能しますか? U + 003cとU + 003eはそれぞれ小なり記号と大なり記号のUnicodeコードです。これは偶然以上のように思えますが、Javaがこのようなことを自動的に行うことを聞いたことがありません。 Googleに簡単にアクセスできると思いましたが、Googleはパーセント記号が気に入らないことがわかりました。

役に立ちましたか?

解決

このようなことができます

    String sample = "somejunk+%3cfoobar%3e+morestuff";
    String result = URLDecoder.decode(sample.replaceAll("\\+", "%2B"), "UTF8");

他のヒント

その文字列はおそらく URLエンコードを使用してJavaでデコードします URLDecoder

String res = java.net.URLDecoder.decode(sample, "UTF8");

Javaは、charおよびStringリテラルでのUnicodeエスケープをサポートしていますが、URLエンコードはサポートしていません。

Unicodeエスケープは'\uXXXX'を使用します。XXXXは16進数のUnicodeポイントです。

好奇心t盛:文法では'u'を複数回使用できるため、'\uuuuuuuu0041'は有効なUnicodeエスケープです('A'の場合)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top