我有这样一根线:
"مرحبا هذا نص تجريبي"
我想把它转换成这样:
"\u0623\u0646\u0627"
qv7cva1a1#
可能迂腐的脚注。在 java ,"مرحبا هذا نص تجريبي"已经是unicode。因为字符串在java中是unicode。您需要的通常被称为“转义”字符串——用其他字符序列表示字符。来自@andreas的答案对如何做到这一点很有帮助。
yqyhoc1h2#
我对javamail也有类似的问题,但它不需要我转义字符。我只需要添加一行代码:
MimeUtility.encodeText(fileName)
lymgl2op3#
你可以这样做:
String input = "مرحبا هذا نص تجريبي"; StringBuilder buf = new StringBuilder(); for (int i = 0; i < input.length(); i++) { char ch = input.charAt(i); if (ch >= 32 && ch < 127) buf.append(ch); else buf.append(String.format("\\u%04x", (int) ch)); } String result = buf.toString(); System.out.println(result);
输出
\u0645\u0631\u062d\u0628\u0627 \u0647\u0630\u0627 \u0646\u0635 \u062a\u062c\u0631\u064a\u0628\u064a
3条答案
按热度按时间qv7cva1a1#
可能迂腐的脚注。在 java ,
"مرحبا هذا نص تجريبي"
已经是unicode。因为字符串在java中是unicode。您需要的通常被称为“转义”字符串——用其他字符序列表示字符。
来自@andreas的答案对如何做到这一点很有帮助。
yqyhoc1h2#
我对javamail也有类似的问题,但它不需要我转义字符。我只需要添加一行代码:
lymgl2op3#
你可以这样做:
输出