目次

不正な文字は何?

文字コード→文字変換

「Hello2.java:4: \65307 は不正な文字です。」などとエラーが出たとき、どの文字が不正なのかがが分からないことがあります。

65307は10進数の文字コードです。下の欄に入力して「変換」ボタンを押すとユニコードとその文字が出ます。

結果はここに出ます

もし16進の文字コードから変換したいときは次の欄を使ってください。

使い方

例えば

65307       10進→文字変換

u+ff1b:[;]

は、65307のユニコードスカラーが u+ff1b で その文字は ; であることを教えてくれます。

;は全角なので不正な文字だと教えているのです。半角の ; を使うべきだということです。

" "の内部とコメント以外のプログラムを構成する文字には日本語の文字(いわゆる全角)を使ってはいけません。

なぜ分かりにくいのかというと

エラーメッセージは次の様に文字の位置が ^ で示されますが日本語の文字が入ると位置が正しくなりません。

Hello2.java:4: \65307 は不正な文字です。
               System.out.println("こんにちは!");
                                           ^

これは、 ^ が文字の幅を考慮せず、文字数だけで計算されていることによります。「こんにちは」を形の似たアルファベットにして「ZLE5H」と書くと正しく ; の位置になります。

Hello2.java:4: \65307 は不正な文字です。
               System.out.println("ZLE5H!");
                                           ^

これはそのうちに改良されるかもしれません。


Javaプログラミング(Apr.2011)
聖愛中学高等学校
http://www.seiai.ed.jp/