7月 182010
 

转载地址:http://blog.csdn.net/luntan6788/archive/2008/07/14/2651318.aspx
最近刚刚开始用Netbeans,就遇到了最容易遇到的中文乱码问题。(好像从Eclipse,到JBuilder再到Netbeans,都需要解决这类 问题)于是在网上查找了一下,这里给出一个常见的中文乱码问题汇总。呵呵。
最常见的,源程序导入Netbeans中以后,其中的注释或字符串成了乱码。
这个问题好解决也不好解决。Netbeans是可以设置工程的文件编码格式的。在你的工程上点右键,Properties选项中Sources里面可以设 置编码格式。比Eclipse强的一点是这里有很多种编码格式可以选择,我需要用的GBK也在。不象当年用Eclipse的时候就下拉列表里面的编码那么 几种,到处找不到GBK。后来查了一下才知道,那个ComboBox不止可以选,自己写一个GBK上去也可以,然后就支持GBK了。晕倒,怎么有这么设计 的。说这个问题不好解决的原因就是需要你原来文件的编码格式没有问题,比如是GBK的,或者UTF的,或者其他的,总之需要Netbeans支持的。我见 到一个哥们问,他的文件(同一个文件)里面又有中文GBK,又有日文,怎么支持。没办法,支持不了。另外需要注意的是如果文件已经打开了,那么改工程编码 不会自动刷新的。需要关了再开一次。我开始就没明白。
我遇到的问题是文件里面的内容没问题,但是运行后Netbeans的控制台里面是乱码。Eclipse里面可以设置控制台编码格式的,但是我在 Netbeans里面没找到。用程序的命令行参数-encoding GBK也不起作用。后来找了各种方法来试,发现需要在Netbeans的安装目录下的etc目录下有一个netbeans.conf,其中有 Netbeans的启动参数:netbeans_default_options=”-J-Dcom.sun.aas.installRoot=”C: Program Filesglassfish-v2ur2″ -J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true “。在启动参数中增加编码方式的设置netbeans_default_options=”-J-Dcom.sun.aas.installRoot= “C:Program Filesglassfish-v2ur2” -J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m -J-Xverify:none -J-Dapple.laf.useScreenMenuBar=true -J-Dsun.java2d.noddraw=true -J-Dfile.encoding=GBK“, 这样Netbeans的控制台就可以显示正常的中文了。
另外一个在网上见到大家讨论最多的乱码问题就是在Ubuntu下中文都显示成方框的问题,是由于没有合适的中文字体文件造成的。解决方法如下:在 /user/share/fonts目录下找到gbsn00lp.ttf,把它拷到 javahome/jre/lib/fonts/fallback下面。一般,jre里没有fallback目录,你需要建一个。然后再打开 netbeans等同样用java环境的软件,界面方块问题就不会再有了。有些版本的Ubuntu下没有这个字体文件,解决办法是把 /usr/share/fonts/truetype/arphic/ 文件夹下的字体拷贝到 JAVA_HOME/jre/lib/fonts/fallback下面,就OK了。
=======================
我修除windows下netbeans 6.0 C/C++乱码的过程:首先是在项目上点击右键,选择好编码。如果原先的文件已经生成过了,则需要在所有的中文处(这个时候可能已经是乱码了),重新输入 中文。这样,察看结果的时候,就不会有乱码了。


 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)