日期:2014-05-20  浏览次数:20808 次

关于unicode的问题
"programs   are   written   using   unicode   characters   set "   这句话怎么理解呢,我直接在记事本上写测试代码,是ANSI编码格式的,这时可以顺利编译运行,但是将编码格式变成unicode时候,编译时就抱错 "illegal   character ".以前对这种问题没注意,读到上面这句话时有点不解。
主要问题可以归结如下:java源程序文件在计算机上应该是以二进制字节串保存的吧,java   编译器编译源程序的时候,它将文件读进来时,是以什么规则来进行识别的,我的理解是:我用ANSI编码格式保存,java   编译器应该就按照ANSI来识别,如果我用unicode保存,java   编译器应该就按照unicode来识别,但是我用unicode保存,java   编译器就抱错了,这就更让我对最开始那句话不解了,求人指教。

注意:我不是指对文件的操作,而是针对java源程序本身的编译识别问题。

------解决方案--------------------
javac命令有个参数encoding,默认的情况下就是系统的编码。

如果你系统的中文,默认文件的编码是gbk。

它会把你文件内容按gbk码编译成unicode的class文件

但是你现在文件的编码是unicode,如果再按gbk来当然会报错了

如果你非要编译unicode的java文件 加个参数 -encoding utf-16