java - 为什么 Java 不能在字符串中正确显示 unicode?

标签 java intellij-idea unicode

<分区>

我正在使用 IntelliJ IDEA,我正在尝试打印一个 string,它具有用于滑雪者 U+26F7 和运行者 U+1F3C3< 的 unicode/strong> 使用以下代码:

System.out.println("\u26f7" + "   " + "\u1f3c3");

只有滑雪者才能正确显示。但是,IntelliJ 确实以不同颜色显示了最后 3 个运行程序代码,表明存在问题。关于如何解决此问题的任何想法?

最佳答案

Java 的转义语法是在 Unicode 不超过 216 个字符时设计的,因此您必须在 \u 之后指定恰好四个十六进制数字。不多也不少。

"\u1f3c3"其实就是\u1f3c3这两个字符。

Java 字符串总是采用UTF-16。因此,一种选择是查找您的角色的详细信息(例如,here)并在您的字符串中使用相应的 UTF-16 值:0xD83C 0xDFC3 → "\uD83C\uDFC3"/p>

另一种选择是在 java.util.Formatter 中使用 %c 说明符.例如:

System.out.printf("%c   %c%n", 0x26f7, 0x1f3c3);

(与 println 不同,除非您将 %n 添加到格式中,否则 printf 不会打印换行符。)

关于java - 为什么 Java 不能在字符串中正确显示 unicode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52224923/

相关文章:

java - 如何像在 PHP 中一样制作 Android Java HMAC SHA256?

java - JSF 数据表不显示任何数据

python - UnicodeWarning 只触发一次

python - 如何显示以 Unicode 呈现的 MultipleChoiceField 中的数据

java - 将输入扫描到字符数组Java

Java DatePicker 弹出日历

intellij-idea - 由于 Lombok 用法,无法在 Intellij Idea 13 EAP/12.1.5 中编译项目

java - "The filename or extension is too long error"使用 gradle

Android Studio - 无效与重新启动与无效并重新启动

python - 在 python 字典中使用 unicode 键