`

linux 乱码处理

 
阅读更多

  事情的起因是:我使用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—-默认空值,也就是输出到终端不进行编码转换。

 

参考 http://blog.csdn.net/wallacexiang/article/details/5134305

本文转自 http://java.chinaitlab.com/base/823630.html

分享到:
评论

相关推荐

    linux乱码解决.

    - 在处理乱码问题时,建议先备份重要数据,避免因操作失误导致数据丢失。 - 如果是服务器环境,还需要考虑远程登录工具(如SSH)的字符编码设置是否正确。 - 某些特殊情况下的乱码问题可能需要结合具体的使用场景...

    linux乱码问题的解决办法

    ### Linux乱码问题解决方案 #### 一、理解乱码产生的原因 在Linux环境中,乱码问题通常是由于不同操作系统之间的字符编码差异所导致的。Windows系统默认采用GBK编码(早期使用GB2312),而Linux则普遍使用UTF-8编码...

    SecureCRT等连接Linux出现乱码

    7. **特殊情况处理**:如果连接的是中文环境的Linux服务器,确保Windows系统本身也支持UTF-8,如安装Microsoft的locale包,并在区域和语言设置中选择UTF-8相关的选项。 通过以上步骤,大多数情况下可以解决...

    使用C+解决Linux中文乱码问题.docx

    在使用C++编程时,遇到Linux系统中处理中文字符出现乱码的问题是一个常见的困扰。这个问题主要涉及字符编码、文件读写、字符串操作以及跨平台兼容性。以下将详细解释这个问题的根源及其解决方案。 首先,我们要了解...

    Linux下中文文件名乱码问题的详解 - CSDN博客1

    在Linux系统中,处理中文文件名时可能会遇到乱码的问题,这是因为Linux系统默认采用的字符编码与Windows系统不同。在Windows系统中,GBK是常见的字符编码格式,而在Linux系统中,UTF-8是默认的字符编码。当在Linux...

    jfreechart linux乱码解决方案

    在Linux环境下,使用JFreeChart库进行图表生成时,可能会遇到中文乱码的问题。这是因为JFreeChart默认使用的是西方字符集,不支持中文显示。本文将深入探讨如何解决这一问题,确保在Linux系统中,JFreeChart能正确地...

    linux解决中文乱码问题

    在Linux系统中,中文乱码问题常常困扰着用户,尤其是对于那些需要处理中文文本的开发者和运维人员。这个问题主要出现在终端、文件名、文件内容显示等方面。以下是一些解决Linux环境中中文乱码问题的方法和详细步骤:...

    Linux定时脚本crontab中文乱码.docx

    Linux 定时脚本 crontab 中文乱码解决方案 Linux 系统中的定时脚本 crontab 是一个功能强大的工具,允许用户在指定的时间执行特定的命令或脚本。然而,在使用 crontab 执行 jar 文件时,如果输出结果包含中文字符...

    LInux 乱码解决资料搜集

    1. **字符编码不匹配**:Linux系统内部处理文本时默认采用某种字符编码(如UTF-8),而应用程序或用户终端可能采用了不同的编码格式。 2. **环境变量设置不当**:环境变量`LANG`、`LC_ALL`等配置错误或未正确设置,...

    linux乱码问题的解决方法完整版

    ### Linux乱码问题解决方案 #### 一、理解乱码产生的原因 在Linux环境中,乱码问题通常是由于不同操作系统之间的字符编码差异所导致的。Windows系统默认采用GBK或GB2312编码,而Linux系统则通常使用UTF-8编码。当...

    JFreechart 在linux下不显示及中文乱码问题

    6. **处理编码**:确保代码中涉及的文件和字符串都使用UTF-8编码,避免乱码。 7. **加载自定义字体**:在JFreechart中加载`zysong.ttf`字体,通过`Font.createFont()`方法将字体文件转换为Java可用的Font对象,然后...

    Linux下的JFreeChart中文乱码口口解决

    在Linux环境下使用JFreeChart库绘制图表时,可能会遇到中文乱码的问题。JFreeChart是一个强大的Java库,它提供了一套完整的解决方案来创建各种图表,如饼图、柱状图、线图等。然而,由于编码问题,当图表中包含中文...

    linux下的文件名乱码,转为正常

    下面将详细介绍如何在Linux下处理文件名乱码问题。 1. **字符编码基础** - **Unicode**:Unicode 是一种统一的字符编码标准,包含了世界上大部分文字系统,以数字的形式表示每个字符。 - **UTF-8**:UTF-8是...

    Linux下用ll命令--显示total等字母时乱码的解决方法.docx

    总之,遇到Linux下`ll`命令显示乱码的问题,调整`LANG`环境变量通常是有效的解决办法。通过确保系统和终端使用的字符编码一致,可以避免大多数乱码问题。同时,对字符编码的理解和管理能力也是Linux用户和开发者必备...

    Linux中文乱码问题.pdf

    Linux系统中的中文乱码问题是一个常见的问题,主要发生在系统、终端、文件及网页浏览时。解决中文乱码问题,首先需要了解字符编码的基础知识和Linux系统中的locale设置。 字符编码是指用数字来表示字符和符号的方法...

    Linux下MySQL解决乱码问题

    ### Linux下MySQL解决乱码问题...通过上述步骤,可以有效地解决Linux环境下MySQL数据库的乱码问题,确保中文字符能够被正确地处理。对于开发人员来说,理解这些配置细节对于维护数据库的稳定性和数据的准确性至关重要。

    linux下java生成图片乱码问题.doc

    在Linux环境下,使用Java生成包含中文的图片时,经常遇到一个常见的问题——中文字符显示为乱码。这个问题的根源在于Linux系统默认的字体库中可能缺少支持中文的字体,因此在渲染中文字符时无法正确显示。针对这个...

Global site tag (gtag.js) - Google Analytics