【发布时间】:2015-01-30 20:56:02
【问题描述】:
我正在尝试存储一个 utf 字符,如下所示:
char utfChr1 = '\u1F6BF';
这给了我一个无效字符常量错误。
char utfChr2 = '\uE517';
工作正常。我可以将 char 设置为 FFFF 并且它可以在没有编译器错误的情况下工作。但是任何超过 65535 (10000) 的东西都会给我这个错误。我能做什么?
【问题讨论】:
我正在尝试存储一个 utf 字符,如下所示:
char utfChr1 = '\u1F6BF';
这给了我一个无效字符常量错误。
char utfChr2 = '\uE517';
工作正常。我可以将 char 设置为 FFFF 并且它可以在没有编译器错误的情况下工作。但是任何超过 65535 (10000) 的东西都会给我这个错误。我能做什么?
【问题讨论】:
char 类型在 Java 中是 16 位的。因此仅支持 UTF-16。
我会说“不要尝试将其用作常量”,但我不确定您打算用它做什么。您始终可以使用支持您正在寻找的字符的编码从外部源读取值。
编辑: 我看到您希望使用字符SHOWER :)
从链接中可以看出,它在 UTF-16 中编码为 2 个字符:\uD83D\uDEBF
【讨论】: