Java:使用主题和纯文本多行主体对mailto链接进行编码

时间:2017-07-24 06:17:29

标签: java email utf-8 urlencode mailto

我搜索了很多,但我无法找到问题的解决方案。我需要编写一个mailto:链接主题和正文到java中的UTF-8。

正文由纯文本组成

是否有任何编码方法:

  • UTF-8 中的整个字符串,例如Ä%C3%84S
  • 空白进入%20 而不是 +
  • \ r \ n 进入%0D%0A
  • / %2f

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您需要URLEncode.encode(String s, String enc)方法。第二个参数应该是字符串UTF-8

它将空格编码为+而不是%20,这对查询参数有效;你可以随时使用特殊情况并用后者替换所有前者。例如:

import java.net.URLEncoder;
import java.util.regex.Pattern;

public class Foobar {
  private static Pattern space = Pattern.compile("\\+");
  public static void main(String[] args) throws Exception {
    String first = URLEncoder.encode("Ä+ \r\n/", "UTF-8");
    String second = space.matcher(first).replaceAll("%20");
    System.out.println(second);
  }
}

输出:

%C3%84%2B%20%0D%0A%2F