我正在研究遗留系统,我遇到了一段我无法理解的代码。
String note = URLDecoder.decode(URLEncoder.encode(
message.replaceAll("\\<.*?\\>", ""),
"UTF-8").replace("%0D%0A", "<br>"), "UTF-8");
这是做什么的,为什么它被编码然后再解码。 仅供参考:此“消息”将附加到已发送的电子邮件中。
答案 0 :(得分:2)
第一个替换为输入正在用CRLF
标记替换<br>
(carret return和换行符号)。
第二个replaceAll删除所有标签(如<tag>
)。
UTF-8是用于将原始字节解码/编码为实际字符的字符集编码。 WWWC(World Wide Web Consorcium)states应该使用UTF-8。
答案 1 :(得分:0)
从编码角度来看,分解为以下代码可能有助于更好地理解:
String updatedMessage = message.replaceAll("\\<.*?\\>", "");
System.out.println(updatedMessage );
String encodedMessage = URLEncoder.encode(updatedMessage ,"UTF-8");
System.out.println(encodedMessage );
String updatedEncodedMessage = encodedMessage .replace("%0D%0A", "<br>");
System.out.println(updatedEncodedMessage );
String note = URLDecoder.decode(updatedEncodedMessage ,"UTF-8");
System.out.println(note );
没有正则表达式,只是替换了一些字符串。