私はこのような文字列を持っています
"\x27\x18\xf6,\x03\x12\x8e\xfa\xec\x11\x0dHL"
ブラウザコンソールに配置すると、自動的に別のものになります:
"\x27\x18\xf6,\x03\x12\x8e\xfa\xec\x11\x0dHL"
"'ö,úìHL"
chatAt(x)
この文字列を処理すると、次のようになります。
"\x27\x18\xf6,\x03\x12\x8e\xfa\xec\x11\x0dHL".charAt(0)
"'"
"\x27\x18\xf6,\x03\x12\x8e\xfa\xec\x11\x0dHL".charAt(1)
""
"\x27\x18\xf6,\x03\x12\x8e\xfa\xec\x11\x0dHL".charAt(2)
"ö"
これは私が欲しいものです。
ここで、ブラウザと同じ方法で文字列を読み取る Java プログラムを実装したいと考えています。
問題は、Java がこの文字列のエンコード方法を認識しないことです。代わりに、通常の文字列として扱います。
"\\x27\\x18\\xf6,\\x03\\x12\\x8e\\xfa\\xec\\x11\\x0dHL".charAt(0) == '\'
"\\x27\\x18\\xf6,\\x03\\x12\\x8e\\xfa\\xec\\x11\\x0dHL".charAt(1) == 'x'
"\\x27\\x18\\xf6,\\x03\\x12\\x8e\\xfa\\xec\\x11\\x0dHL".charAt(2) == '2'
この文字列はどのようなエンコーディングでエンコードされていますか? プレフィックスを使用するエンコーディングの種類は何\x
ですか? 正しく読み取る方法はありますか (ブラウザと同じ結果が得られます)。
更新:解決策を見つけました->それは最善ではないと思いますが、私にとってはうまくいきます:
StringEscapeUtils.unescapeJava("\\x27\\x18\\xf6,\\x03\\x12\\x8e\\xfa\\xec\\x11\\x0dHL".replace("\\x", "\\u00"))
返信ありがとうございます :) 特に Ricardo Cacheira
ありがとうございました