先解决第二种情况这种情况一般是由于使用了文本编辑器编写程序引起(其实觉得在入门级别多用文本编辑器很有好处!),这时候只要在文本编辑器的目录框图中
如果不是因为第二种情况引起的这时候检查错误的方法就是:一段代码一段代码的去删除。直到你删除某块代码以后不再报这个错误了,说明错误就在你刚刚删除的这块代码里面然后再再这块代码里面缩小范围继续删除!直到找到出错的代码行。
所以程序员总是在天堂与地狱之间徘徊啊!!
先解决第二种情况这种情况一般是由于使用了文本编辑器编写程序引起(其实觉得在入门级别多用文本编辑器很有好处!),这时候只要在文本编辑器的目录框图中
如果不是因为第二种情况引起的这时候检查错误的方法就是:一段代码一段代码的去删除。直到你删除某块代码以后不再报这个错误了,说明错误就在你刚刚删除的这块代码里面然后再再这块代码里面缩小范围继续删除!直到找到出错的代码行。
所以程序员总是在天堂与地狱之间徘徊啊!!
这个错误出现的主要原因是java文件嘚编码问题
在中文操作系统中,使用一贯的“javac
HelloWorld.java”方式编译UTF-8(带BOM)编码的.java源文件在没有指定编码参数(encoding)的情况下,默认是使用GBK编码當编译器用GBK编码来编译UTF-8文件时,就会把UTF-8(带BOM)编码文件的文件头的占3个字节的头信息按照GBK中汉字占两个字节、英文占1个字节的特性解码荿了“乱码”的两个汉字。这个源文件应该是用记事本另存存为UTF-8编码造成的
对于非GBK及其子集编码(GB2312)的正确的源文件,编译方式为“javac -encoding "UTF-8" HelloWord.java”这样代码错误的指定代码里就不会出现乱码的中文。
这是因为.java对于UTF-8编码只识别UTF-8(不带BOM)那种。而记事本只支持保存文件为带签名的UTF-8那有没有办法解决呢?
也许有人会说“我干脆都用GBK不就行了吗,为什么还要用UTF-8呢”