我使用以下代码替换' \'但它不起作用。
msg="\uD83D\uDE0A";
msg=msg.replace("\\", "|");
我在Google上花了很多时间。但没有找到任何解决方案。
也试过
msg="\uD83D\uDE0A";
msg=msg.replace("\", "|");
答案 0 :(得分:4)
定义的msg
字符串也必须使用这样的转义字符:
msg="\\uD83D\\uDE0A";
msg=msg.replace("\\", "|");
该代码将起作用,它将导致:|uD83D|uDE0A
答案 1 :(得分:0)
如果要显示unicode字符的unicode整数值,可以执行以下操作:
String.format("\\u%04X", ch);
(如果您愿意,可以使用"|"
代替"\\"
。
您可以遍历字符串中的每个字符,并将其转换为文字字符串,如"|u####"
,如果这是您想要的。
答案 2 :(得分:0)
据我所知,您希望获得字符串的unicode表示。为此,您可以使用here的答案。
private static String escapeNonAscii(String str) {
StringBuilder retStr = new StringBuilder();
for(int i=0; i<str.length(); i++) {
int cp = Character.codePointAt(str, i);
int charCount = Character.charCount(cp);
if (charCount > 1) {
i += charCount - 1; // 2.
if (i >= str.length()) {
throw new IllegalArgumentException("truncated unexpectedly");
}
}
if (cp < 128) {
retStr.appendCodePoint(cp);
} else {
retStr.append(String.format("\\u%x", cp));
}
}
return retStr.toString();
}
这将为您提供unicode值作为String,然后您可以根据需要替换它。