将阿拉伯语字符串转换为unicode

az31mfrm  于 2021-07-06  发布在  Java
关注(0)|答案(3)|浏览(596)

我有这样一根线:

"مرحبا هذا نص تجريبي"

我想把它转换成这样:

"\u0623\u0646\u0627"
qv7cva1a

qv7cva1a1#

可能迂腐的脚注。在 java ,
"مرحبا هذا نص تجريبي"
已经是unicode。因为字符串在java中是unicode。您需要的通常被称为“转义”字符串——用其他字符序列表示字符。
来自@andreas的答案对如何做到这一点很有帮助。

yqyhoc1h

yqyhoc1h2#

我对javamail也有类似的问题,但它不需要我转义字符。我只需要添加一行代码:

MimeUtility.encodeText(fileName)
lymgl2op

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

相关问题