我参考以下网站:
http://coderstoolbox.net/string/#!encoding=xml&action=encode&charset=us_ascii
选择“URL”,“编码”和“US-ASCII”,输入将转换为所需的输出。
如何使用Java代码生成相同的输出?
提前致谢。
答案 0 :(得分:0)
您可以使用ESAPi.encoder().encodeForUrl(linkString)
查看有关encodeForUrl https://en.wikipedia.org/wiki/Percent-encoding
的更多详细信息如果不符合您的要求或面临任何其他问题,请发表评论。
由于
答案 1 :(得分:0)
我用过它,似乎工作正常。
public static String encode(String input) {
Pattern doNotReplace = Pattern.compile("[a-zA-Z0-9]");
return input.chars().mapToObj(c->{
if(!doNotReplace.matcher(String.valueOf((char)c)).matches()){
return "%" + (c<256?Integer.toHexString(c):"u"+Integer.toHexString(c));
}
return String.valueOf((char)c);
}).collect(Collectors.joining("")).toUpperCase();
}
PS:我使用256来限制前缀U到非ASCII字符的位置。对于256以内的标准ASCII字符,不需要前缀U.
替代选项:
在构建Java类(java.net.URLEncoder
)中有一个URL编码。但它的工作方式略有不同。 See if it helps:
String encoded = URLEncoder.encode(input, "US-ASCII");
希望这有帮助!