用javac和gcc/g++进行编译时的编码问题

用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

希望对大家有帮助,为了验证我说的是对的,以后再贴图给各位啦!

你可能感兴趣的:(用javac和gcc/g++进行编译时的编码问题)