【发布时间】:2012-05-02 23:01:30
【问题描述】:
我正在尝试将 'o͝'(语音字符)分配给 Java 程序中的字符,但我收到错误“无效字符常量”。我的文件使用 UTF-8 和其他拼音字符可以正常工作,但不是这个。看起来这个字符实际上是两个(一个“o”和一个连字或类似的东西),但我无法打破它正在形成的部分。
代码示例:
Character test = 'o͝';
任何帮助将不胜感激。
【问题讨论】:
我正在尝试将 'o͝'(语音字符)分配给 Java 程序中的字符,但我收到错误“无效字符常量”。我的文件使用 UTF-8 和其他拼音字符可以正常工作,但不是这个。看起来这个字符实际上是两个(一个“o”和一个连字或类似的东西),但我无法打破它正在形成的部分。
代码示例:
Character test = 'o͝';
任何帮助将不胜感激。
【问题讨论】:
您可以尝试查看字符表上的字符编号并将其分配给变量,例如:
char a = '\u0040';
【讨论】:
\uXXXX 转义始终有效并且可以处理 Unicode 中的任何字符
字形被称为“带有combining double breve 的小写字母o”,在源代码中可以写成;
String a = "\u006f\u035d";
由于它是一个组合字符(即两个字符),因此不能将结果值分配给单个 Java 字符,您需要使用字符串。
【讨论】:
如前所述,你不应该硬编码这样的字符,你应该使用这里找到的 unicode 点值:
你想要的实际上涉及一个“组合字符”:
http://en.wikipedia.org/wiki/Combining_character
组合变音符号是 0x0300 - 0x036f。因此,例如,要创建您想要的字符('o' 带双短号),请使用:
String o_doubleBreve = "o\u035d";
打印为o͝
【讨论】: