• [Linux] 解决终端显示乱码问题


    【背景】

    公司弄了两台新的虚拟机,用来将原先都部署在一台机器上的JIRA, Fisheye, Confluence迁移到这两台机器上,使用SecureCRT进行登录,使用相关命令时,一台出现乱码,另外一台正常显示,使用vim时,也是一样,所以来总结总结乱码问题的解决方法。

    【解决】

    1. 两台相关截图

    第一台 第二台

    2. 在网上找到方法说是需要修改/etc/sysconfig/i18n,比较两台机器上的这个文件内容,发现乱码机器为空,非乱码机器为如下:

    #LANG="zh_CN.UTF-8"
    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="latarcyrheb-sun16"

    3. 按照网上查到的相关资料表明确实是需要修改此文件,修改之

    vim /etc/sysconfig/i18n

      修改之后,发现没法更新,我使用的sysadmin登录的,查看文件权限:

      这样种办法只能找到root帐号,再进行更新,我们这种帐号不可能给出来,只能找运维部门解决。

    4. 继续搜索,有贴子里提到这么一句话“远程工具与服务器的字符集是否一样”,想着我使用的是SecureCRT进行的登录,所以尝试着修改一下工具的字符集,找到如下设置:

      

      修改这里的字符编码,使用locale查看本机字符编码如下:

      

      修改终端字符编码为UTF-8,最终编码显示正常,和另一台机器一样

    总结

    再次进行资料搜集之后,总结乱码如下解决办法:

    0. 查看远程工具与服务器的字符集是否一样

    1. 修改/etc/sysconfig/i18n:

    #LANG="zh_CN.UTF-8"
    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="latarcyrheb-sun16"

    2. 修改~/.bash_profile文件,并执行source ~/.bash_profile(在不重启系统的情况下使新环境变量生效):

    LANG="zh_CN.GB18030"

    3. 在bash环境下直接执行:

    export LANG=zh_CN.GB18030
  • 相关阅读:
    39.前端需要注意哪些SEO
    38.http的几种请求方法和区别
    37.伪元素和伪类的区别
    35.如何实现页面每次打开时清除本页缓存
    Jmeter工具设置中文版(切换显示语言)
    soapui测试http接口
    【C++】《Effective C++》第三章
    【C++】《Effective C++》第二章
    【设计模式】面向对象设计原则
    【设计模式】设计模式概述
  • 原文地址:https://www.cnblogs.com/garinzhang/p/3613282.html
Copyright © 2020-2023  润新知