//host:port/abc/testr-email.html?ans1=NÃO&ans2=NÃO&ans3=NÃO&ans4=SIM&ans5=NÃO&cntr=1&ts=5&pname=TAAA
使用URLEncoder.encode(String,"UTF-8");后页面 URL 为 " " 页面路径上的特殊字符转义/编码如下所示。
pagepath = "//host:port/abc/testr-email.html?ans1=N%C3%83O&ans2=N%C3%83O&ans3=N%C3%83O&ans4=SIM&ans5=N%C3%83O&counter=1&totalquestions=5&participantname=TAAA"
下面是我试图读取页面内容的代码片段,其中有一些特殊字符值作为“NÃO”,在 bufferreader 处理将其解码并获取发送给它的电子邮件后,这些值正在丢失其编码功能身体。
代码片段:
url = new URL(pagepath);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef());
url = uri.toURL();
URLConnection conn = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = br.readLine()) != null) {
byte[] byte1 = inputLine.getBytes("UTF-8");
String sample=new String(byte1, "UTF-8");
log.info("sample Content ==>" + StringEscapeUtils.unescapeHtml4(sample));
content.append(sample);
Where the content is an a StringBuilder as below
StringBuilder content = new StringBuilder();
以及 BufferedReader 丢失 URLEncoded 功能后的内容,以将我的特殊字符转换回解码并将其用于电子邮件。
String tempstring = StringEscapeUtils.unescapeHtml4(content.toString());
email.setHtmlMsg(tempstring);
我观察到 email.setHtmlMsg(...)。没有我的“ NÃO ”特殊字符,它已将字符转义为“ N%C3%83O ”。
如何取回特殊字符并将其发送到发送电子邮件功能中的 HTML 邮件正文。?