linux下因为系统编码问题造成乱码的快速解决方法_Linux

最近一段时间遇到一些润乾的应用在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,然后就会看到系统的字符集信息变化了

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

时间: 2024-10-25 20:24:14

linux下因为系统编码问题造成乱码的快速解决方法_Linux的相关文章

IE下Ajax提交乱码的快速解决方法_AJAX相关

哈哈,试了这么多还是encodeURIComponent管用啊!!!! 在汉字的位置加个保护措施:encodeURIComponent(parentid) function loadCity(parentid) { var city = '${hotel.city}'; $.ajax({ url: './listCity.jspx?prov='+ encodeURIComponent(parentid), type: 'GET', dataType: 'JSON', timeout: 5000,

IE下Ajax提交乱码的快速解决方法

哈哈,试了这么多还是encodeURIComponent管用啊!!!! 在汉字的位置加个保护措施:encodeURIComponent(parentid) function loadCity(parentid) { var city = '${hotel.city}'; $.ajax({ url: './listCity.jspx?prov='+ encodeURIComponent(parentid), type: 'GET', dataType: 'JSON', timeout: 5000,

PHP读MYSQL中文乱码的快速解决方法_php技巧

打算切换某个网站的主机,没想到遇到Php和Mysql中文乱码的问题. 以前的国外主机用的Mysql是4.x系列的,感觉还比较好,都无论GBK和UTF-8都没有乱码,没想到新的主机的Mysql是5.0版本的,导入数据后,用Php读出来全是问号,乱码一片,记得我以前也曾经有过一次切换出现乱码的经验,原因肯定是Mysql版本之间的差异问题. 只好查资料,发现了一个解决方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用

关于Linux操作系统下终端乱码的完美解决方法_Linux

初入linux的程序员们,经常会受到乱码的问候.可谓"始乱终弃".因为乱码,并且最终放弃了linux的不在少数.好吧,言归正传,先看看各类乱码是怎么形成的. 中文字符乱码 这种情况一般是安装了中文控制端,但没有启用中文应用造成的.只需要启动相应软件即可,如zhcon.或者是启用了相应软件,但字符集不对,需设置相应字符集,例如export LANG=zh_CN.UTF-8 ORACLE安装界面乱码 虽说ORACLE支持多国语言,会根据环境变量自动选择字符集,但中文安装好像还有问题,不过1

Linux CentOS6.6系统中安装mysql源码包的方法_Linux

这里以CentOS6.6系统中安装MySQL的源码包,进行讲解. 1. mysql源码包的下载 mysql安装包的官方下载地址为:http://dev.mysql.com/downloads/mysql/5.6.html 打开该下载地址后,在 "Select Version:"处,选择要下载的mysql的版本,我选择的是5.6.34:在"Select Platform:"处,选择适用的操作系统类型,由于是下载源码包,故这里我们要选择Source Code. 之后,会

详解Linux中文乱码问题终极解决方法_Linux

初入linux的程序员们,经常会受到乱码的问候.可谓"始乱终弃".因为乱码,并且最终放弃了linux的不在少数.好吧,言归正传,下面来看一下linux乱码的具体解决办法吧. 方法一: 修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030 该文件在用户目录下,对于其他用户,也必须相应修改该文件. 使用该方法时putty能显示中文,但桌面系统是英文,而且所有的网页中文显示还是乱码 方法二: 修改/etc/sysconfig/i18n文件 

Linux下SVN服务器自动更新文件到Web目录的方法_Linux

说明: 服务器操作系统:CentOS 服务器IP:192.168.21.134 SVN安装路径:/usr/local/svn SVN项目路径:/home/svn SVN登录账号:osyunwei SVN登录密码:123456 Web站点根目录:/home/web实现目的: 当svn项目中有任何修改更新时,系统会自动实时从svn中检出文件并同步到Web站点根目录 具体操作: 一.使用SVN中post-commit实现自动实时从svn中检出文件并同步到Web站点根目录 cd /home/svn/ho

Linux下tar命令的简单使用及相关错误解决方法

  tar 是Linux 下最常用的打包.压缩工具,它在Linux 中扮演类似于WinZip 或WinRAR 在Windows 下的角色.下面是该工具的常用命令参数及运用举例: 主要命令: -c 创建包 -x 解包 -t 列出包中的内容 -r 增加文件到指定包中 -u 更新包中的文件 可选命令: -j 创建或解开包时 使用bzip2 进行压缩或解压; -z 创建或解开包时 使用gzip 进行压缩或解压; -Z 创建或解开包时 使用compress 进行压缩或解压; -f 后面跟指定的包文件名;

SecureCRT中文显示乱码问题的解决方法_Linux

环境:SecureCRT登陆REDHAT5.3 LINUX系统 问题:vi编辑器编辑文件时文件中的内容中文显示乱码,但是直接使用linux系统terminal打开此文件时中文显示正常,确诊问题出现在客户端即SecureCRT的显示问题 解决方法: 1.修改远程linux机器的配置 [root@rhel ~]#vi /etc/sysconfig/i18n  把LANG改成支持UTF-8的字符集 如: LANG="zh_CN.UTF-8″ 或者是 LANG="en_US.UTF-8″  本