1

Java プログラムで文字に 'o͝' (表音文字) を割り当てようとしていますが、「無効な文字定数です」というエラーが表示されます。私のファイルは UTF-8 を使用しており、他の表音文字は正常に機能しますが、これは機能しません。この文字は、実際には 2 つの文字 (「o」と合字など) のように見えますが、部品を形成しているため、それを壊すことはできません。

コード例:

Character test = 'o͝';

どんな助けでも大歓迎です。

4

4 に答える 4

4

このグリフは「小文字 o と2 つのブレーブを組み合わせたもの」と呼ばれ、ソースでは次のように記述できます。

String a = "\u006f\u035d";

これは結合文字 (つまり2 つの文字) であるため、結果の値を単一の Java char に割り当てることはできません。文字列を使用する必要があります。

于 2012-04-21T18:51:13.080 に答える
2

文字テーブルで文字の番号を調べて、それを変数に割り当てることができます。次のようになります。

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

たまたま作成した新しいコードでは \u 表現を与えるのが最善であるという上記の回答に同意しますが、ソースコードにこの問題があり、おそらくコードをコンパイルできたプロジェクトに出くわすでしょう。私が現在取り組んでいるそのような例の 1 つがopenNLPです。

このような問題が発生した場合、Eclipse などの IDE で実行している場合、このような手順に従うと、ワークスペースのデフォルト表現を UTF-8 に変更できることがわかります。これにより、コードのコンパイルが成功します。

于 2016-09-27T18:32:41.170 に答える
0

すでに述べたように、そのような文字をハードコードするべきではありません。次の Unicode ポイント値を使用する必要があります。

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

あなたが望むのは、実際には「組み合わせ文字」です。

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

結合する分音記号は 0x0300 ~ 0x036f です。したがって、たとえば、必要な文字を作成するには ('o' にブレーブが 2 つ付いている)、次のようにします。

String o_doubleBreve = "o\u035d";

o͝ として印刷

于 2012-04-21T18:56:44.327 に答える