【1】快速修改命令

  

【2】locale 查看现在服务器的字符

[root@Master ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="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"
LC_ALL=zh_CN.UTF-8

locale -a 查看服务器支持哪些字符集:

打印太多,多虑下 zh---中国 表示支持的中国字符集有:

[root@Master ~]# locale -a|grep zh
zh_CN
zh_CN.gb18030
zh_CN.GB18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
zh_HK
zh_HK.big5hkscs
zh_HK.utf8
zh_SG
zh_SG.gb2312
zh_SG.gbk
zh_SG.utf8
zh_TW
zh_TW.big5
zh_TW.euctw
zh_TW.utf8
注意:

zh_CN.utf8 待会设置的时候可以大写也可以小写,utf-8 ==== UTF-8
locale 的变量是什么意思?
LC_ALL > LC_* > LANG
LANG,LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。
LC_ALL,它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响

【2.1】locale每个变量是干嘛的?

Locale的命名规则:<语言>_<地区名>.<字符编码名称>
对于zh_CN.GB2312而言,zh表示中文,CN表示大陆地区,GB2312表示使用的字符集为GB2312。
LC_COLLATE
用于比较和排序。
LC_CTYPE
用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。
LC_MONETORY
用于格式化货币单位。
LC_NUMERIC
用于格式化非货币的数字显示。
LC_TIME
用于格式化时间和日期。
LC_MESSAGES
用于控制程序输出时所使用的语言,主要是提示信息,错误信息,状态信息, 标题,标签, 按钮和菜单等。
LC_ALL
它不是环境变量,只是一个宏,可使用setlocale设置所有的LC_*环境变量。这个变量设置之后,可以废除LC_*和LANG的设置值,使得这些变量的设置值与LC_ALL的值一致。
LANG
它的值用于指定上面环境变量没有设置的所有变量值。如果指定了上面任何一个变量的值,则会废除对应的LANG值的缺省设置。

【3】情景模拟

情景1、设置中文:不显示中文目录等等

首先得确定,设置两种字符集,一个是你的服务器,一个是你连接服务器的终端。当然不用远程肯定就不用设置终端,终端是putty,secureCRT,xshell等等。
设置服务器:

export LC_ALL=zh_CN.UTF-8
长久之计,
echo export LC_ALL=zh_CN.UTF-8 >> ~/.bashrc
终端设置:secureCRT

选项-绘画选项-外观

下拉列表选择你的语言,细心找找

情景2、svn up 时出现,cannot .......utf-8.........

解决方案:

<1>快速方案:
直接 在shell输入: export LC_ALL=en_US.UTF-8,locale 命令看看有没有错误,无错误 执行 svn up
<2>由于方案<1>只能针对此shell管用,下次再次进入shell时,仍需要重新设置,所以有长久方案:
编辑 /etc/profile文件, 如图
svn: E000022: Can't convert string from native enc

需要重新打开新的shell

情景3、locale 的时候出现 cannot set

[root@Master ~]# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="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"
LC_ALL=zh_CN.UTF-8
这种情况最坑,找遍各种资料,无果。

这种情况是因为glibc 相关造成的,可能是机器最近更新了glibc 等等。我就是这种情况

你可以

1、可能没有装这个,yum试试,如果装了,第二步

yum install glibc-common
2、是不是升级了glibc,环境变量,打印看看

我之前为了某软件方便,直接在 /etc/profile写入下面这行。

#export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
把这行注释,locale不会报错了。

[root@Master ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="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"
LC_ALL=zh_CN.UTF-8

以下部分转自:https://blog.csdn.net/fzuzhanghao1993/article/details/77650500

情景4、glibc2.12升级glibc2.14导致乱码

  勇敢的骚年哟,请问你要的是这个glibc2.12呢还是这个glibc2.14呢。。。由于隔壁部门坑爹的SO,需要我把glibc升级到2.14,于是苦逼的程序员开始了艰辛的升级之旅~~

升级的过程不用说了,网上一抓一大把,粗制滥造的就算了,CSDN上有很多篇很详细的文章,不过纵观全网大量的文章居然都漏了一个重要步骤,直接就导致了后面locale的设置问题。

大部分教程make && make install完成后,直接开始设置软连接,设置完以后文章就结束了!然后你以为就没事了吗,接下来就开始:

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

VI编辑器打开日志,各种^M 各种口口口,各种乱码~~

于是我又开始设置locale,设置i18n,各种没用啊卧槽!我的服务器到底是肿么了。。。

千辛万苦最后才知道,拜托make完还要make localedata好伐!!

make localedata/install-locales

终于,打开服务器不报错了,vi也正常了。。。重要的事情说三遍

make localedata/install-locales
make localedata/install-locales
make localedata/install-locales

如果你的系统是ubuntu:
参照:https://www.ttlsa.com/linux/howto-change-ubuntu-locale/

【烦人的字符集】linux字符集问题,中文乱码的更多相关文章

  1. secureCRT linux shell显示中文乱码 解决方法

    引:有没有这样的经历: 1.在shell中直接查看包含中文的文件时,出现一堆火星文,不得不下载下来window看. 2.无法正常的在shell中输入中文. 3.make的时候输出一堆乱码. 以下是查阅 ...

  2. 解决Linux下Oracle中文乱码的一些心得体会 ,转自

    以下转自 http://blog.itpub.net/29151695/viewspace-1173238/ 最近在linux上安装完oracle 10gR2后,又遇到了字符集乱码的问题,之前在网上找 ...

  3. 解决Linux下sqlplus中文乱码问题

    错误现象:在windows下用其他工具访问oracle,确认中文正常显示.在Linux下使用sqlplus查询数据表中文内容出现乱码. 分析及解决:因为windows下正常,所以问题应出现在Linux ...

  4. windows平台下编辑的内容传到linux平台出现中文乱码的解决办法

    现象说明:在windows下编辑的内容,上传到linux平台下出现中文乱码.如下: 在windows平台编写haha.txt文件,内容如下: 上传到linux平台,出现中文乱码,如下: 基本上面出现的 ...

  5. Linux中MySQL中文乱码问题

    一. 问题描述 登录后查看mysql默认编码: mysql> show variables like 'character%'; +--------------------------+---- ...

  6. linux shell 终端中文乱码(转)

    方法一:修改/etc/sysconfig/i18n 文件把里面的LANG="en_US"改成 GB2312就可以了要重启一下机器不用重启的方法,直接# LANG="GB2 ...

  7. Linux 中 Windows 中文乱码

    Linux 下 Windows 源代码中文乱码 由于 windows 和 linux 对文本的编码方式不同,所以经常会有 windows 中生成的文本在 linux 中打开乱码的情况. 比如: 我面临 ...

  8. .net core在linux下图片中文乱码

    不得不吐槽一下,.net core 2.2的System.Drawing在linux有很多坑,又是依赖libgdiplus,又是依赖gdiplus,依赖解决了又来了个中文乱码,怎的一声哀叹 这里做个笔 ...

  9. linux字符集介绍及解决中文乱码实战

    字符集对应配置文件:/etc/sysconfig/i18n 先备份再修改: 备份:cp /etc/sysconfig/i18n /etc/sysconfig/i18n.oldboy.20150521 ...

  10. Ubuntu下设置中文字符集支持(解决中文乱码问题)

    一. Ubuntu默认的中文字符编码 Ubuntu默认的中文字符编码为zh_CN.UTF-8,这个可以在/etc/environment中看到: sudo gedit /etc/environment ...

随机推荐

  1. redis集群搭建_超详细

    redis集群中至少应该有三个节点,以保证当集群中的某个节点挂掉,其他节点进行容错投票时,投票数能超过半票. 要保证高可用,则还需要每一个节点有一个备份机. 因此redis集群至少需要6台服务器.这里 ...

  2. 【c++】一道关于继承和析构的笔试题

    题目如下,求输出结果 class A { public: A() { cout<<"A"<<endl; } ~A() { cout<<" ...

  3. SQL结果统计 GROUP BY

    在结果几种,使用GROUP BY进行相同项求和的时候SELECT的字段要与GROUP BY后面的一一对应. select M.TIME,M.PRODUCTMODEL,M.PROCESS_PRODUCT ...

  4. fiddler界面工具栏介绍(二)

    工具栏介绍 1.Winconfig,Windows 使用了一种称为“AppContainer”的隔离技术,使得一些进程的流量无法捕获,打开WinConfig后可设置解除隔离. 2.气泡按钮,给sess ...

  5. Chrome开发者工具面板 F12 调试大全 记录

    面板上包含了Elements面板.Console面板.Sources面板.Network面板.Timeline面板.Profiles面板.Application面板.Security面板.Audits ...

  6. linux-PXE-12

    以DHCP+DNS模式管理服务器IP地址和主机名.服务器上架前,以其MAC地址为依据,在DHCP中配置主机保留并分配主机名.DHCP结合TFTP提供的PXE服务,提供PXE引导Linux内核和启动镜像 ...

  7. 珍珠x

    题目描述 有n颗形状和大小都一致的珍珠,它们的重量都不相同.n为整数,所有的珍珠从1到n编号.你的任务是发现哪颗珍珠的重量刚好处于正中间,即在所有珍珠的重量中,该珍珠的重量列(n+1)/2位.下面给出 ...

  8. (48)LINUX应用编程和网络编程之三Linux获取系统信息

    3.3.1.关于时间的概念 3.3.1.1.GMT时间 (1)GMT是格林尼治时间,也就是格林尼治地区的当地之间. (2)GMT时间的意义?[用格林尼治的当地时间作为全球国际时间],用以描述全球性的事 ...

  9. swiper实现滑动到某页锁住不让滑动

    var swiper = new Swiper('.swiper-container', { pagination: '.swiper-pagination', onTouchStart: funct ...

  10. linux crontab -e生成日期格式

    近期公司数据库服务器要上双活项目,实施顾问要收集服务器(磁盘性能数据)IO及VM的一些相关信息,并已日期时间格式生成文件 用crontab –e增加以下内容,它的作用是每隔1个小时启动一次iostat ...