将十六进制+字符转换为字符

时间:2013-06-17 20:30:39

标签: java html dom escaping decode

我想将包含hexcode和普通字符的字符串转换为Java中的字符。 示例输入是\ x3e \ x3c / style \ x3e \ x3cscript \ x3e \ x3c!

输出应为><style><script><

2 个答案:

答案 0 :(得分:1)

这是尝试的东西。它不是一个单行,因为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><!

答案 1 :(得分:0)

如果字符串是

x = '\x3e\x3c/style\x3e\x3cscript\x3e\x3c!'

然后使用

x.decode('string_escape')