Java:使用主题和纯文本多行正文对 mailto link 进行编码
Java: Encoding of a mailto link with subject and plain text multiline body
我在谷歌上搜索了很多,但没能找到解决问题的办法。我需要在 java.
中将带有主题和正文的 mailto: link 编码为 UTF-8
正文由纯文本组成
有没有编码的方法:
- UTF-8中的整个字符串,例如Ä到%C3%84S
- blanks 变成 %20 而不是 +
- \r\n 变成 %0D%0A
- / 到 %2f
感谢您的帮助!
您需要 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
我在谷歌上搜索了很多,但没能找到解决问题的办法。我需要在 java.
中将带有主题和正文的 mailto: link 编码为 UTF-8正文由纯文本组成
有没有编码的方法:
- UTF-8中的整个字符串,例如Ä到%C3%84S
- blanks 变成 %20 而不是 +
- \r\n 变成 %0D%0A
- / 到 %2f
感谢您的帮助!
您需要 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