【发布时间】:2023-04-03 04:48:01
【问题描述】:
我想将这样一个同时包含十六进制码和普通字符的字符串转换为 Java 中的字符。 示例输入是 \x3e\x3c/style\x3e\x3cscript\x3e\x3c!
输出应该是><style><script><!
【问题讨论】:
标签: java html dom escaping decode
我想将这样一个同时包含十六进制码和普通字符的字符串转换为 Java 中的字符。 示例输入是 \x3e\x3c/style\x3e\x3cscript\x3e\x3c!
输出应该是><style><script><!
【问题讨论】:
标签: java html dom escaping decode
这里有一些东西可以尝试。它不是一个单行,因为 URLDecoder.decode 想要抛出一个异常。
import java.net.URLDecoder;
public class TestDecode {
public void run() throws Exception {
String test = "\\x3e\\x3c/style\\x3e\\x3cscript\\x3e\\x3c!";
System.out.printf("%s\n", URLDecoder.decode(test.replaceAll("\\\\x", "%"), "UTF-8"));
}
public static final void main(String[] args) throws Exception {
TestDecode td = new TestDecode();
td.run();
}
}
运行时的输出为:
></style><script><!
【讨论】:
如果字符串是
x = '\x3e\x3c/style\x3e\x3cscript\x3e\x3c!'
然后使用
x.decode('string_escape')
【讨论】: