linux系统乱码问题

最近使用ubuntu操作系统(客户端)在ssh连接linux服务器的时候发现乱码问题,但是本机查看中文显示中文没有问题,只是在使用终端more查看本地或远端gbk之类中文编码的文件时出现乱码。折腾了挺久,终于算是搞懂了点皮毛,这里做一点记录。

服务端字符编码

  • 查看locale设置

优先级的关系:LC_ALL > LC* >LANG_

设置格式为:语言[_地域[.字符集]]

locale设定案列:

  1. 设定LC_ALL= zh_CN.XXXX,或LANG=zh_CN.XXXX,中文系统(菜单等都会变成中文)。
  2. 设定LC_CTYPE=zh_CN.XXXX,LANG=en_US.XXXX后可以输入中文,但是系统菜单等还是英文。
  3. 什么都不设置,那么POSIX作为lcoale,也就是C locale。

LANGUAGE是设置应用程序的界面语言。

LANG是优先级很低的一个变量,它指定所有与locale有关的变量的默认值。

  • 查看所有支持的语言

    cd /usr/share/i18n/locales进入目录后执行ls命令查看。

    locale -a 命令查看。

    安装字体: sudo locale-gen en_US.UTF-8

  • 配置

    在/etc/default/locale 配置文件中配置

~$ more /etc/default/locale
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"

配置完需要重启系统,如果原来LANG值en由改为zh重启后系统会变成中文环境,菜单/设置等。

这个是系统全局的设置,也可以针对系统各个用户修改。

客户端字符编码

客户端就是连接使用的工具,比如我使用ubuntu去连接服务器,可以使用系统的terminal终端、也可以使用我的securecrt工具。那这时连接使用的客户端字符集必须和服务器一致,否则在查看服务器的文件时可能出现中文乱码。

比如下面例子:

服务器端使用的是LANG=zh_CN.gb18030编码,客户端使用的是utf-8编码





客户端terminal的编码可以通过菜单栏的 terminal->Set Character Encoding查看,比如我的设置成了utf-8.

结果查看文件就出现了乱码:

如果使用工具securtCRT的话,可以通过菜单栏:Options->Session Options->Appearance->Character encoding项来查看。

编码问题总结

如果是使用客户端远程登陆查看远程的文件的话,只要保证文件的编码和客户端的编码格式一致即可,当然使用客户端查看本地文件也是如此。

如果是系统产生的乱码,比如输入su到哪个用户下的时候出现乱码,那就是系统编码和客户端编码要一致。

一般抓住服务端(或是文件)和客户端编码一致这一点,就不会出现乱码的问题。

最后附上vim设置可以查看多种编码文件的设置:

在文件/etc/vim/vimrc中加入如下信息:

set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set encoding=prc

这么vim可支持多种编码,而输出的客户端只需要设置为utf-8格式即可。

linux系统各种乱码问题的更多相关文章

  1. seaborn(matplotlib)画图,linux系统中文乱码等问题解决

    data = pd.read_json(json.dumps(issue_dpl)) # set pic size plt.figure(figsize=(13, 5)) sns.set_style( ...

  2. Linux系统字符集乱码问题

    假设你在安装Linux的过程中就选择了中文.可能能够省去步骤1.2.反之.假设你先安装了英文环境,而后希望它支持中文,则能够1.2步 1.首先在linux中安装中文包安装中文简体包rpm -ivh k ...

  3. 本地文件程序脚本上传linux系统中文乱码问题

    # 使用notepad++ 编辑器打开,转换一下格式保存,然后上传即可

  4. XShell连接 Linux系统,显示中文乱码

    摘要: Linux系统,中文显示乱码 XShell是一个强大的安全终端模拟软件,它支持SSH1, SSH2及 Microsoft Windows平台的Telnet NetSarang Xshell 4 ...

  5. Xshell4连接,Linux系统中文显示乱码解决办法

    Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET NetSarang Xshell 4 Build 0120议.使用 ...

  6. 01_Linux系统系统语言查询,设置Xshell工具,中文显示,测试Xshell中文字符显示,Linux中文显示乱码设置

              Xshell是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNETNetSarang Xshell 4 Build 0 ...

  7. linux之添加切换用户、系统变量、selinux、防火墙、系统中文乱码的讲解

    ######linux用户分类1.root 用户 linux皇帝 2.普通用户 贫民百姓 [root@oldboyedu-01 oldboy]# useradd oldboy[root@oldboye ...

  8. Linux系统下Java 转换Word到PDF时,结果文档内容乱码的解决方法

    本文分享在Linux系统下,通过Java 程序代码将Word转为PDF文档时,结果文档内容出现乱码该如何解决.具体可参考如下内容: 1.问题出现的背景 在Windows系统中,使用Spire.Doc ...

  9. Linux实战教学笔记06:Linux系统基础优化

    第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...

随机推荐

  1. 用css改变console.log的输出样式

    console.log允许你通过css来格式化输出,格式如下: console.log('%c字符串[%c字符串]', 样式1, [样式2]) 其中"%c"为模板字符串 例子: 1 ...

  2. bzoj4554: [Tjoi2016&Heoi2016]游戏 二分图匹配

    4554: [Tjoi2016&Heoi2016]游戏 Description 在2016年,佳缘姐姐喜欢上了一款游戏,叫做泡泡堂.简单的说,这个游戏就是在一张地图上放上若干个炸弹,看 是否能 ...

  3. js-tab选项卡

    说道tab选项卡,顾名思义,就是切换不同内容分类,想必学过前端的都知道,tab有很多方法可以实现,最近刚跟师傅学了一种,感觉很简便,很实用哦.    一.先看一下结果 二.可以根据图来布局,首先上面标 ...

  4. IP查询接口1

    新浪的:http://counter.sina.com.cn/ip?ip=IP地址返回Js数据,感觉不是很精确,可以把问号后面的去掉,直接返回本机对应的IP所在地http://www.yodao.co ...

  5. LINQ查询表达式和LAMBDA点标记方法基础

    在上一篇文章中,我们介绍了LINQ的一些基本用法,这一篇我们来看下另一种更简洁更优雅的表达式,Lambda表达式,也可以叫做点标记方法. 相信大家在实际工作中都用到过这两种方式,下面我们还是用实例来看 ...

  6. 如何解决在chrome中自动完成表单后input出现黄色背景

    可以对input:-webkit-autofill使用足够大的纯色内阴影来覆盖input输入框的黄色背景:如: 代码如下: input:-webkit-autofill { -webkit-box-s ...

  7. iOS上传代码到Github平台

    对于开发人员来说,很多时候想把自己好的代码 demo放到一个公共平台,与大家交流,Github就是一个不错的平台,下面给大家说说Github的具体使用方法. 第一步.申请Github账号.https: ...

  8. 学习git的使用--在当地的简单命令--01

    <----------git安装完成后操作-----------------> git config --global user.name "scy"添加用户名git ...

  9. 一张图理解RACSignal的Subscription过程

    通过下面一张图理解RACSignal的调用过程: 创建signale RACSignal通过子类[RACDynamicSignal createSignal:]方法获得Signal,并将disSubs ...

  10. XML与JavaScript知识

    什么是XMLHttpRequest 对象? 答:XMLHttpRequest 对象用于在后台与服务器交换数据,它是开发者的梦想,因为它能够:1.在不重新加载页面的情况下更新网页:2.在页面已加载后从服 ...