如何更改字符串编码

时间:2015-02-12 22:49:29

标签: java character-encoding

我有一个字符串"hello❤️#xyz"。 hello和#xyz之间有表情符号。我需要带有UTF-8解码字符串的最终字符串

"hello \ud83c\udf1c #xyz".

我如何实现这一目标。我能够将整个字符串转换为

\u0068\u0065\u006C\u006C\u006F\u2764\uFE0F\u0020\u0023\u0078\u0079\u007A

使用此代码

String s = "hello❤️ #xyz";
StringBuffer sb = new StringBuffer();
for (char ch : s.toCharArray()) {
        sb.append(String.format("\\u%04X", (int)ch));       
}
System.out.printf(sb.toString());

1 个答案:

答案 0 :(得分:1)

喜欢这个吗?

String s = "hello❤️ #xyz";
StringBuffer sb = new StringBuffer();
for (char ch : s.toCharArray()) {
    if(ch >= 32 && ch <= 126)
        sb.append(ch); // ch is a printable ASCII character
    else
        sb.append(String.format("\\u%04X", (int)ch));       
}
System.out.printf(sb.toString());