[英]Convert unicode string to an escaped ASCII string with '%XX' characters
I have java code that gets URLs with UTF characters, that should be converted to "escaped" characters, such as %A4%FD
etc. 我有Java代码,它获取带有UTF字符的URL,应将其转换为“转义”字符,例如%A4%FD
等。
Is there a way to make this conversion? 有没有办法进行这种转换?
Take a look at java.net.URLEncoder. 看一看java.net.URLEncoder。 Or you can make your own encoder based on String.format: 或者,您可以基于String.format制作自己的编码器:
char c = 'Ë';
String hex = System.out.printf("%%%02X%%%02X", c & 0xFF, (c >> 8) & 0xFF);
this converts c to %CB%00
这会将c转换为%CB%00
To covert a string: 隐蔽字符串:
String s = "1Ë2";
StringBuilder sb = new StringBuilder();
for(char c : s.toCharArray()) {
if (c > 128) {
sb.append(String.format("%%%02X%%%02X", c & 0xFF, (c >> 8) & 0xFF));
} else if (c == '%'){
sb.append("%%");
} else {
sb.append(c);
}
}
System.out.println(sb);
result: 结果:
1%CB%002
只需使用此:URLEncoder.encode(str2,“ utf-8”)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.