飞道的博客

【精华】linux error 常见合集

550人阅读  评论(0)

目录

1. Linux error 常见error处理... 1

1.1 出现乱码... 1

1.1.1 原因... 1

1.1.2 解决方法... 2

1.1.3 其它知识... 3

1.1.4 参考链接... 5

最后更新于 2020-0427

 

1. Linux error 常见error处理

1.1 出现乱码

关键词:linux 中文乱码 英文乱码 设置语言 字符集

1.1.1 原因

系统安装的语言包不是常用的英文(en_US.UTF-8)及中文(zh_CN.UTF-8),只要修改回来就ok了。使用locale命令查看当前系统状态使用的语言系统(字符集),如下。

在Linux中通过locale来设置程序运行的不同语言环境,locale由ANSI C提供支持。locale的命名规则为<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8,zh代表中 文,CN代表大陆地区,UTF-8表示字符集

Ps:"C"是系统默认的locale,"POSIX"是"C"的别名。所以当我们新安装完一个系统时,默认的locale就是C或POSIX

1.1.2 解决方法

  1. 把上述默认的POSIC修改成英文(en_US.UTF-8)或中文(zh_CN.UTF-8)
  • 无root,仅对当前用户生效:①修改~/.bashrc文件:加入

'#language

export LANG=zh_CN.UTF-8

export LANGUAGE=zh_CN.UTF-8'

(如果需要英文则换成en_US.UTF-8),之后’source ~/.bashrc’让其生效即可;

  • 有root,用于所有用户:①修改 /etc/sysconfig/i18n,加入 ‘LANG=zh_CN.UTF8’,英文则换成en_US.UTF8。(注意改好之后重启一下系统,所以不建议这种方法);或者②编辑 /etc/profile配置文件,添加如下一行 ‘export LANG=zh_CN.UTF8’,再重新载入 ‘source /etc/profile’

1.1.3 其它知识

1. local 命令环境变量的解释

在locale环境中,有一组变量,代表国际化环境中的不同设置:

LC_COLLATE

定义该环境的排序和比较规则

LC_CTYPE

用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量

LC_MONETARY

货币格式

LC_NUMERIC

非货币的数字显示格式

LC_TIME

时间和日期格式

LC_MESSAGES

提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则LC_MESSAGES参数就会失效。 LANGUAGE参数可同时设置多种语言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"

LANG  

LC*的默认值,是最低级别的设置,如果LC*没有设置,则使用该值。类似于 LC_ALL

LC_ALL

 

它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响

2. 字符集介绍
汉字编码:GB2312字集

简体字集,全称为GB2312(80)字集,共包括国标简体汉字6763个。

BIG5字集是台湾繁体字集,共包括国标繁体汉字13053个。

GBK字集是简繁字集,包括了GB字集、BIG5字集和一些符号,共包括21003个字符。

GB18030是国家制定的一个强制性大字集标准,全称为GB18030-2000,它的推出使汉字集有了一个“大一统”的标准。
 

ASCII:
American Standard Code for Information Interchange,美国信息交换标准码。目前计算机中用得最广泛的字符集及其编码,由美国国家标准局(ANSI)制定。它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。ASCII字符集由控制字符和图形字符组成。在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。

所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1。偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。

UTF:
Unicode 的实现方式不同于编码方式。一个字符的Unicode编码是确定的,但是在实际传输过程中,由于不同系统平台的设计不一定一致,以及出于节省空间的目的,对Unicode编码的实现 方式有所不同。 Unicode的实现方式称为Unicode转换格式(Unicode Translation Format,简称为 UTF)。

UTF-8: 8bit变长编码,对于大多数常用字符集(ASCII中0~127字符)它只使用单字节,而对其它常用字符(特别是朝鲜和汉语会意文字),它使用3字节。

UTF-16: 16bit编码,是变长码,大致相当于20位编码,值在0到0x10FFFF之间,基本上就是unicode编码的实现,与CPU字序有关。

/etc/sysconfig/i18n 内容介绍:

  1. LANG变量是language的简称,这个变量是决定系统的默认语言的,即系统的菜单、程序的工具栏语言、输入法默认语言等。
  2. SYSFONT是system font的简称,决定系统默认用哪一种字体
  3. SUPPORTED变量决定系统支持的语言,即系统能够显示的语言。如果没有则需要安装相应的中文或者英文等语言包。

1.1.4 参考链接

https://www.cnblogs.com/h2zZhou/p/5324385.html

https://blog.csdn.net/weixin_39246787/article/details/80581496

https://blog.csdn.net/zwe7616175/article/details/79598769

随时更新,收藏更划算,另外这个栏目也请求合作,有errors的也可以互相交流记录~(q:754022498)你们的赞和收藏是我的动力(厚颜无耻)!

个人学习记录,有问题请随时反馈,谢谢~

 


转载:https://blog.csdn.net/Bruce_Kong/article/details/105800972
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场