用javac和gcc/g++进行编译时的编码问题
By Barron Pun
大家在用javac编译.java文件,或者用gcc/g++编译时是否遇到过这样一个问题,中文字符会乱码。从而伴随着一系列的问题,什么编译过不了之类的。那么这个时候我们就需要明白其中的道理,然后再用正确的方法去解决它。
举个java的例子来说,在用javac进行编译的时候,如果你不指定编码的方式,那么将会自动选择当前系统的编码方式来对源程序进行转换。这个时候问题就来了。因为java默认是utf-8的编码方式的,而你却用的其它编码方式去转换,那势必会造成不能生成对应的.class文件。用gcc/g++编码也是一样的道理。
解决办法:
java中:
在windows下,你可以用记事本打开程序,然后点击另存为,接着选择编码方式为ANSI,确定之后再次编译就可以了。但是这样难免有些麻烦,因为每次都要这样做,所以可以通过在命令行中进行指定来解决:
javac -encoding utf-8 xxx.java
在gcc/g++中:
类似于java中,你也可以用记事本来改变文本的编码方式,改为ANSI编码,但是为了方便,也是可以在命令行中解决的,在windows中,可以:
gcc/g++ -fexec-charset=GBK xxx.c/xxx.cpp -o xxx.exe
希望对大家有帮助,为了验证我说的是对的,以后再贴图给各位啦!