【问题标题】:Java: Encoding of a mailto link with subject and plain text multiline bodyJava:使用主题和纯文本多行正文对邮件链接进行编码
【发布时间】:2017-12-29 15:19:02
【问题描述】:

我用谷歌搜索了很多,但我无法找到解决问题的方法。我需要对 mailto 进行编码:在 java 中将主题和正文链接到 UTF-8。

正文由纯文本组成

有没有什么方法可以编码:

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

感谢您的帮助!

【问题讨论】:

    标签: java email utf-8 urlencode mailto


    【解决方案1】:

    您需要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
    

    【讨论】:

    • 谢谢,但我已经试过了,但它不能正确编码 \r\n
    • 回车和换行对我来说很好用。使用正则表达式更新为特殊情况,使用 %20 表示空格。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    相关资源
    最近更新 更多