こんなjavacで,
Eclipse Java Compiler v_585_R31x, 3.1.2 release, Copyright IBM Corp 2000, 2006. All rights reserved.
こんなJavaプログラムを,
class nanika {
public static void main(String[] args) {
System.out.println("\"");
}
}
LANG=ja_JP.SJIS
とするか,あるいはShift_JISを明示してコンパイルすると
$ javac -encoding Shift_JIS nanika.java
こんなエラーになる。
----------
1. ERROR in nanika.java
(at line 3)
System.out.println("??"");
^^^
String literal is not properly closed by a double-quote
----------
0x5c(Shift_JISだと円記号)がASCIIの 0x5c(バックスラッシュ)とは違うコードに変換されているのが原因のよう。確かに違うので正しいのだが,こんな仕様で引っかかる人はいないのだろうか。
ここで,encodingをWindows-31Jやcp932とした場合には,問題ない模様。どっちのコードも 0x5c は円記号だった気がするのだが。
単に Shift_JIS まわりがバグっているだけだろうか。
ちなみに,OSはFedora Core 5。