操作系统字符编码优化

本文详细介绍了字符编码的概念,包括ASCII、ANSI(如GB2312和GBK)、Unicode及UTF-8的区别,指出UTF-8的广泛适用性与GB2312的紧凑性,并展示了如何使用localectl工具调整系统字符编码。
摘要由CSDN通过智能技术生成

什么是系统字符编码呢?

因为计算机不能直接存储⽂字,存储的是编码。计算机只能处理⼆进制的数据。所以人为规定了一套“翻译”,这就是系统字符编码。

1.常见编码(了解就好)

  • ASCII码:

美国发布的,用1个字节(8位⼆进制)来表示⼀个字符,共可以表示2^8=256个字符。

美国的国家语言是英语,只要能表示0-9、 a-z、 A-Z、特殊符号。

  • ANSI编码:

每个国家为了显示本国的语言,都对ASCII码进行了扩展。用2个字节(16位⼆进制)来表示⼀个汉字,共可以表示 2^16= 65536个汉字。

中国的ANSI编码是GB2312编码(简体),对6763汉字进行编码,含600多特殊字符。另外还有GBK(简体)。

日本的ANSI编码是JIS编码。

中国台湾的ANSI编码是BIG5编码(繁体)。

  • GBK:

对GB2312进行了扩展,⽤来显示罕见的、古汉语的汉字。现在已经收录了2.1万左右。并提供了1890个汉字码 位。 K的含义就是“扩展”。

  • Unicode编码(统⼀编码):

⽤4个字节(32位⼆进制)来表示⼀个字符,想法不错,但效率太低。例如,字母A用ASCII表示的话⼀个字节就够,可用Unicode编码的话,得用4个字节表示,造成了空间的极大浪费。

  • UTF-8(Unicode Transform Format)编码:

根据字符的不同,选择其编码的长度。比如:⼀个字符A用1个字节表示,⼀个汉字用2个字节表示。 毫无疑问,开发中都用UTF-8编码,准没错。

中⽂能够使用的字符集两种: 第⼀种: UTF-8。 UTF-8是国际通用字库,里面涵盖了所有地球上所有⼈类的语言文字,比如阿拉伯文、汉 语…… 第⼆种: GBK(对GB2312进行了扩展)。 gb2312 是国标,是中国的字库,里面仅涵盖了汉字和⼀些常用外文,比如日文片假名,和常见的符号。 字库规模: UTF-8(字很全) > gb2312(只有汉字)

数据存储大小

UTF-8和gb2312的比较,保存大小: UTF-8(更臃肿、加载更慢) > gb2312 (更小巧,加载更快)

总结:

UTF-8:字多,有各种国家的语言,但是保存尺寸大,文件臃肿;

gb2312:字少,只⽤中⽂和少数外语和符号,但是尺寸小,文件小巧。

2.localectl:系统字符编码调整方法

常用参数:
参数解释说明
status查看显示目前的字符编码设置
set-locale LOCALE...设置系统的字符编码信息
list-locales列出系统已知的字符编码信息

调整系统的字符编码:

我们先看一下当前的字符编码设置是什么

localectl 或 localectl status

在切换字符集前,我们可以先查看有什么可以设置的字符集

localectl list-locales  --查看可以设置的字符集

输入/,进入搜索,输入你需要的字符集,这里我想找中文的字符集,就输入zh,在一列zh开头的字符集中找到zh_CN.utf8,然后复制这一段。

使用命令,就切换成你需要的字符集了。

localectl set-locale LANG=zh_CN.utf8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你先救我妈我再游一会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值