事情的起因是:我使用geany集成开发环境开发,里面使用了中文,在综端用javac命令编译java程序的时候出现了中文无法解释。看起来和不爽,通过我的查询,明白了结果,一下是我查到的两篇文章,我也是根据这两篇文章解决问题的。
解决的方法有:
1:在geany中设置“生成”,在编译改为javac "%f" -encoding GB18030,执行改为java "%e" -encoding GB18030,这样你要是用geany编译和运行就不会出现乱码了。在“编辑”、“首选项”里面把编码都设置文GB18030,不知道不设置的结果是什么,没有测试。
2:如果你不喜欢在geany里面编译,可以在综端里面用javac ClassName.java -encoding GB18030和javac ClassName -encoding GB18030就可以了。
3:怕麻烦那就在/etc/profile下添加两行
export LC_ALL="zh_CN.GBK"
export LANG="zh_CN.GBK"
保存后,用source /etc/profile使其生效。
在修改前,可以用locale命令查看当前的设置,修改后在查看有没有生效。
不知道这样改会不会有什么后果。等待以后验证。
------------第一篇参考文章----------------
由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作 系统默认采用的编码格式,也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保 存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为 JAVA内部默认的UNICODE格式放入内存中。然后,javac把转换后的unicode格式的文件进行编译成.class类文件,此时.class 文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到 的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只 不过此时它己经由file.encoding格式转化为UNICODE格式了。
-----------第二篇参考文章---------------
修改/etc/sysconfig/language文件,将RC_LANG, RC_LC_ALL设置为zh_CN.GB2312, 同时将ROOT_USES_LANG设置为 "yes"
一。Linux系统的默认编码设置。
/etc/sysconfig/i18n
Controls the system font settings. The language variables are used in /etc/profile.d/lang.sh. An example i18n file:
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
以上是把系统的默认字符集设置为GB2312.现在很多系统默认编码字符集是UTF-8。可以通过设置这个文件来改变系统的默认字符集。
另外,也可在用户的环境变量或者用户的环境变量文件加入路径变量的声明:
在系统的预处理文件中声明,这样对整个系统起作用:
#vi /etc/profile
在文件尾加入
LC_ALL="zh_CN.GBK"
export LANG="zh_CN.GBK"
在用户的预处理文件中声明,对单独的用户起作用:
#vi /root/.bash_profile
在文件尾加入
export LC_ALL="zh_CN.GBK"
export LANG="zh_CN.GBK"
以上配置重新启动服务器使更改生效。
二。查看系统当前字符集。
locale:local encode,即本地编码的意思。这个命令不带任何参数就是显示当前系统的字符集编码。也可以设置环境变量,全体参数man locale
三。安装字体。
#mkdir 要存放字体的文件夹
#cp *.ttf 刚才创建的文件夹
生成 fonts.dir 文件
#ttmkfdir > fonts.dir
注:mkfontdir 用于生成点阵字体的 fonts.dir 文件,ttmkfdir 用于生成 TrueType 字体的 fonts.dir 文件。由于 ttmkfdir 不能识某些汉字TTF的编码,需手工修改。
生成的 fonts.dir 如下:
fonts.dir
======
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-ascii-0
改为:
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
生成 fonts.alias 文件
#cat fonts.dir > fonts.alias
将 fonts.alias 内容改为:
SimSun -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0
将字体的路径添加的FontPath中
#vi /etc/X11/XF86Config
在此文件中添加刚才创建的路径
#step
#fc_cache 刚才创建的路径,强制刷新字体缓存,使字体生效。
四。vim编码。
encoding—-该选项使用于缓冲的文本(你正在编辑的文件),寄存器,Vim 脚本文件等等。你可以把 ‘encoding’ 选项当作是对 Vim 内部运行机制的设定。
fileencoding—-该选项是vim写入文件时采用的编码类型。
termencoding—-该选项代表输出到客户终端(Term)采用的编码类型。
此3个变量的默认值:
encoding—-与系统当前locale相同,所以编辑文件的时候要考虑当前locale,否则要设置的东西就比较多了。
fileencoding—-vim打开文件时自动辨认其编码,fileencoding就为辨认的值。为空则保存文件时采用encoding的编码,如果没有修改encoding,那值就是系统当前locale了。
termencoding—-默认空值,也就是输出到终端不进行编码转换。
转自:<a href='http://www.yuloo.com/jsjks/'>计算机培训网</a>
分享到:
相关推荐
Linux 中 Java log 输出中文乱码问题是 Java 应用程序在 Linux 环境下一个常见的问题。该问题的产生是由于 Linux 系统的 locale 设置不正确导致的。locale 是 Linux 系统中用于控制字符编码、日期格式、货币格式、...
在Linux环境下,使用Java生成包含中文的图片时,经常遇到一个常见的问题——中文字符显示为乱码。这个问题的根源在于Linux系统默认的字体库中可能缺少支持中文的字体,因此在渲染中文字符时无法正确显示。针对这个...
在Linux环境下运行Java Swing应用程序时,遇到中文乱码问题是一个常见的挑战。这通常源于系统编码、字体支持或Java运行环境的设置不当。本文将详细探讨Linux下Java Swing程序中文乱码的原因及解决方案,帮助开发者...
标题 "AWT在Linux下的中文乱码" 涉及的是Java图形用户界面(GUI)开发中的一个问题,尤其是在非Windows操作系统环境下。AWT(Abstract Window Toolkit)是Java早期提供的一个用于创建GUI的基本库,它依赖于本地操作...
本文主要研究了在Linux操作系统下Java程序中文乱码的问题。该问题是指在Java程序中使用中文时,出现乱码的情况。这是一个常见的问题,在开发Java程序时经常会遇到。 字符集 字符集是指字符的集合,每个字符集包含...
标题“JFreechart在Linux下不显示及中文乱码问题”指出的是在使用JFreechart库创建图表时,在Linux操作系统环境下遇到的两个主要问题:图表无法正常显示以及中文字符出现乱码。JFreechart是一个Java库,用于生成高...
在Linux环境下,Java应用程序在处理中文字符时可能会出现字体乱码的问题,这主要与系统默认字体、Java虚拟机(JVM)的配置以及可用的中文字体资源有关。本篇文章将详细探讨这个问题及其解决方案,帮助开发者解决Java在...
java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 的问题 java aspose java aspose word 上传到服务器 导出的word 中文字体乱码 ...
在Linux操作系统中,Java应用程序处理中文字符时可能会遇到乱码问题。这主要涉及到编码格式的不匹配,因为Linux系统默认采用UTF-8编码,而某些Java应用或文件可能使用了GB2312、GBK或其他编码。本篇将详细介绍如何...
尤其是在使用 Java 应用程序时,中文乱码问题变得更加突出。幸运的是,解决这个问题并不困难。本文将讲述在 Ubuntu 操作系统下安装 Java 字体配置,解决中文乱码问题。 首先,我们需要了解 Linux 中文乱码的原因。...
如果Java程序在Windows环境下正常运行,但在Linux环境下出现乱码,很可能是由于这个原因。为了解决这个问题,我们可以统一Java编译器和源文件编码,例如在IDEA中设置项目编码为UTF-8,并在POM.XML中配置UTF-8编码: ...
尤其是在Windows系统下,文件名通常采用GB2312或GBK编码,而Java中的`ZipInputStream`和`ZipOutputStream`类默认使用的是Unicode编码,这种编码差异导致了中文文件名在压缩与解压过程中的乱码现象。 #### 二、解决...
在Java编程中,读取包含中文字符的文件时可能会遇到乱码问题,这通常是由于编码格式不匹配导致的。要解决这个问题,我们需要理解文件的原始编码格式,并在Java代码中正确地设置字符集。以下是一些相关的知识点: 1....
4. 跨平台移植:Java程序在不同编码环境(如中文Windows到英文Linux)之间移植,若未调整编码设置,也可能导致乱码。 二、Java中文问题的解决方案 1. 源代码编码:确保Java源文件以正确的编码(如GBK)保存,并在...
在Linux系统下使用Swing进行GUI开发时,可能会遇到中文乱码的问题。解决这一问题通常需要对系统的编码环境进行适当的配置。以下是一个详细的步骤指南,帮助开发者解决乱码问题。 **第一步:** 检查系统默认字符集...
java——图片字体显示方块问题处理 /usr/java/jdk1.7.0_80/jre/lib/fonts/fallback msyhbd.ttf msyh.ttf wqy-microhei.ttf /usr/java/jdk1.7.0_80/lib/fonts/fallback msyhbd.ttf msyh.ttf wqy-microhei.ttf
Java 解决中文乱码问题 Java 中文乱码问题是中国程序员无法避免的话题。乱码的出现是由于中文和英文的编码格式不同,解码也是不一样的。如果中国的程序员不会遇到乱码,那么只有使用汉语编程。Han语编程是怎么回事...
但在实际应用中,Java程序可能会部署在不同编码环境的操作系统上(如中文Windows和英文Linux),这就涉及到了编码转换的问题。如果编码转换不当,很容易导致中文乱码的情况出现。 #### 二、Java中文问题的根本原因 ...
本文提供了一个完整的解决方案,旨在帮助用户在保持Linux中文环境的情况下,顺利安装Oracle并解决汉字乱码问题。 首先,我们需要安装Java Development Kit (JDK),因为Oracle数据库的安装和配置过程需要用到JDK。在...