1

我正在尝试将“o͝”(语音字符)分配给 Java 程序中的字符,但出现错误“字符常量无效”。我的文件使用 UTF-8 和其他拼音字符可以正常工作,但不是这个。看起来这个字符实际上是两个(一个'o'和一个连字或类似的东西),但我无法打破它正在形成的部分。

代码示例:

Character test = 'o͝';

任何帮助,将不胜感激。

4

4 回答 4

4

该字形称为“结合双短的小写字母 o ”,在源代码中可以写为;

String a = "\u006f\u035d";

由于它是一个组合字符(即两个字符),因此不能将结果值分配给单个 Java 字符,您需要使用字符串。

于 2012-04-21T18:51:13.080 回答
2

您可以尝试查看字符表上的字符编号并将其分配给变量,例如:

char a = '\u0040';
于 2012-04-21T18:39:24.253 回答
0

如前所述,您不应该对这样的字符进行硬编码,您应该使用此处找到的 unicode 点值:

http://www.utf8-chartable.de/

你想要的实际上涉及一个“组合字符”:

http://en.wikipedia.org/wiki/Combining_character

组合变音符号是 0x0300 - 0x036f。因此,例如,要创建您想要的字符('o' 带双短号),请使用:

String o_doubleBreve = "o\u035d";

打印为 o͝

于 2012-04-21T18:56:44.327 回答
0

我同意上面的答案,即在您碰巧编写的任何新代码中给出 \u 表示是最好的,但是人们会遇到源代码存在此问题的项目,并且据说他们能够编译他们的代码。我现在正在使用的一个这样的例子是openNLP

好吧,如果你遇到这样的事情,你会看到在像 Eclipse 这样的 IDE 中运行时,如果你遵循这样的过程你可以将工作区的默认表示更改为 UTF-8。这将允许成功编译代码。

于 2016-09-27T18:32:41.170 回答