zoukankan      html  css  js  c++  java
  • Linux下因为系统编码问题造成乱码的解决办法

       2016年12月13日18:34:32  

    --------------------------------


    最近一段时间遇到一些润乾报表的应用在linux系统下面乱码的问题,最后检查后都发现是客户的linux系统默认编码设置的不正确造成的,这种原因造成乱码的现象一般都是程序里面写死了的中文字符能正常展现,但是从数据库中取出来的或者从程序中读出来的中文字符就会出现乱码,下面就介绍一下由于linux系统编码设置不正确造成润乾报表应用乱码问题的解决办法。

    第一步:检查linux的系统编码

    检查linux的系统编码,确定系统是否支持中文。在linux系统的终端中输入命令:locale,就会看到打印出的系统编码信息。如果打印出来的信息如下,则说明系统的编码不支持中文:

    LANG=en_US.UTF-8

    LC_CTYPE=”en_US.UTF-8″

    LC_NUMERIC=”en_US.UTF-8″

    LC_TIME=”en_US.UTF-8″

    LC_COLLATE=”en_US.UTF-8″

    LC_MONETARY=”en_US.UTF-8″

    LC_MESSAGES=”en_US.UTF-8″

    LC_PAPER=”en_US.UTF-8″

    LC_NAME=”en_US.UTF-8″

    LC_ADDRESS=”en_US.UTF-8″

    LC_TELEPHONE=”en_US.UTF-8″

    LC_MEASUREMENT=”en_US.UTF-8″

    LC_IDENTIFICATION=”en_US.UTF-8″

    第二步:修改系统默认编码设置

    如果发现系统编码不支持中文的话,那么就要修改系统编码,使其支持中文,这样润乾报表的中文在应用中才不会乱码。

    修改系统编码的方法如下:

    /etc/sysconfig/i18n

      Controls the system font settings. The language variables are used in /etc/profile.d/lang.sh. An example i18n file:

      LANG=”en_US.GB18030″

      LANGUAGE=” en_US.GB18030: en_US.GB2312: en_US “

      SUPPORTED=” en_US.GB18030: en_US:en:en_US.UTF-8:en_US:en”

      SYSFONT=”lat0-sun16″

      以上是系统的默认字符集是英文的如果要把字符集设置成支持中文的,可以通过设置这个文件来改变系统的默认字符集。

      另外,也可在用户的环境变量或者用户的环境变量文件加入路径变量的声明:

      在系统的预处理文件中声明,这样对整个系统起作用:

      #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,然后就会看到系统的字符集信息变成了如下内容:

    这样系统编码就支持中文了,经过以上修改,由于系统默认编码不支持中文造成的乱码就可以顺利解决了。

  • 相关阅读:
    Python3 tkinter基础 Canvas create_text 在画布上添加文字
    js中如何返回一个存放对象的数组?
    vs2015 出现Lc.exe 已退出,代码为-1的问题,如何解决
    微信PC客户端无法发送图片,怎么解决?
    vs2015 编译时项目出现NuGet程序包还原失败,找不到xxx.xxx.xxx版本的程序包,怎么解决这个问题?
    sql server 根据身份证号计算出生日期和年龄的存储过程
    sql server中截取字符串的常用函数
    sql server 中进行除法运算时,如何得到结果是小数形式呢?
    sql中,如何获取一个数的整数部分和余数部分
    sql 中,如何获取两个日期之前月数、周数、天数
  • 原文地址:https://www.cnblogs.com/942267027wzmblog/p/6171059.html
Copyright © 2011-2022 走看看