Java 将特殊字符编码为其十六进制代码

Java 将特殊字符编码为其十六进制代码,java,encoding,Java,Encoding,我有以下输入字符串:1%2fPJJP 我想将其转换为以下内容:1%;2fPJJP %的十六进制代码可在此处找到: 我如何在Java中实现它 public class HelloWorld { public static void main(String[] args) { String test = null; try { test = URLEncoder.encode("1%2fPJJP", "UTF-8");

我有以下输入字符串:
1%2fPJJP
我想将其转换为以下内容:
1%;2fPJJP

%
的十六进制代码可在此处找到:

我如何在Java中实现它

public class HelloWorld {
    public static void main(String[] args) {
        String test = null;
        try {
            test = URLEncoder.encode("1%2fPJJP", "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        System.out.println(test);
    }
}
但我得到了以下信息:1%252fPJJP


我该怎么做?

这是已知的转换吗?在这里可以找到%的十六进制代码:我想您可以只做
str.replace(“%”,“%;”)
但是为什么要这样做
%
在XML和HTML中都是完全合法的字符;它不需要像这样逃脱。你想达到什么目标?(另一方面,在URL中,字符实体将没有任何意义。在URL的查询部分,
&
将分隔键=值对;在路径之后但在查询之前,
将分隔参数段,因此我认为您不希望将其放在URL中。)