如何更改字符串编码
How to change string encoding
我有一个字符串 "hello❤️ #xyz"。你好和#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());
像这样?
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());
我有一个字符串 "hello❤️ #xyz"。你好和#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());
像这样?
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());