ASCII、Unicode和UTF字符编码区别

计算机的CPU是由晶体二极管组成,只有开关两种状态,因此计算机只能识别0和1。计算机的一个开或关状态称为一个bit,若干个bit可以组成最基本的存储单元byte,因此人类的各种语言就可以用byte存储起来并约定一一对应表示,这种以二进制来表示符号的过程就叫做编码。

1、ASCII(American Standard Code for Information Interchange)编码是用于显示现代英语与部分西欧语言的一套编码,7或8位,只包含英文字符、数字和英文的一些标点符号等。

2、Unicode是能够表示全世界所有符号,被称为万国码。由于英文字符只用一个字节(两个bit以上)就可以表示,对于像汉字这样的东亚文字,常用汉字就有6000多个,用单个字节就无法表示,因此用两个字节来表示,如汉字 '中' 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。Unicode是用多个字节来表示一个字符,而英文字符只有一个字节就可以表示,所以必有字节为0,造成了空间的浪费。

3、UTF,是一种针对Unicode的可变长度字符编码,是Unicode的升级版。互联网出现后,为解决unicode如何在网络上传输的问题,于是面向传输的众多 UTF(UCS Transfer Format)标准出现了,顾名思义,UTF-8就是每次8个位传输数据,而UTF-16就是每次16个位。UTF-8就是在互联网上使用最广的一种unicode的实现方式,这是为传输而设计的编码,并使编码无国界,这样就可以显示全世界上所有文化的字符了。

有时候用matlab读取txt文件时,会出现“锘”的错误提示,这是因为文件的编码方式为UTF-8 with BOM,不同于UTF-8编码的是,它会在文件头行添加“EF BB BF”这三个字节,而EF BB恰好表示锘字,因此在保存文件时要选择UTF-8编码方式。可以选择用Ultraedit或者notepad更改编码方式。

有时候用GMT的psxy等读取文件的命令画线段时,会出现下面的错误提醒,这表示此时读取的文件编码方式很可能是UTF-8 with BOM,这时候读取文件也会极慢。

psxy (GMT_prep_tmp_arrays): Error: Could not reallocate memory [256.00 Gb, 34359738368 items of 8 bytes]

psxy: Processing input table data
ERROR: Caught signal number 11 (Segmentation fault) at
/usr/lib/x86_64-linux-gnu/libgmt.so.5(GMT_fix_up_path+0xb1)[0x7f0558d05ce1]
[0x0]
Stack backtrace:
/usr/lib/x86_64-linux-gnu/libgmt.so.5(sig_handler+0x169)[0x7f0558c50739]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x11390)[0x7f0558a0e390]
/usr/lib/x86_64-linux-gnu/libgmt.so.5(GMT_fix_up_path+0xb1)[0x7f0558d05ce1]
/usr/lib/x86_64-linux-gnu/libgmt.so.5(GMT_psxy+0x4b62)[0x7f0558e7ea52]
/usr/lib/x86_64-linux-gnu/libgmt.so.5(GMT_Call_Module+0xc0)[0x7f0558c5dbe0]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unicode字符集是一种包含了世界上几乎所有字符编码标准,包括了各种语言的字母、符号、标点、数字等等。它为每个字符分配了一个唯一的数字编号,这个编号被称为Unicode码点。 UTF-8编码是一种将Unicode字符集中的码点转换成字节序列的方法。它是一种可变长度的编码方式,使用1到4个字节来表示不同的字符,其中ASCII字符只需要1个字节,而中文等非ASCII字符则需要2到3个字节。UTF-8编码具有向后兼容性,可以表示Unicode字符集中的所有字符,因此被广泛应用于互联网和计算机系统中。 ### 回答2: Unicode字符集是一种用于描述世界各种语言的字符集合的标准规范。Unicode字符集包含了现今世界上大部分语言所使用的字符,包括字母、数字、符号、标点符号以及各种特殊字符Unicode字符集采用唯一的数字编号来表示每个字符,这些数字被称为“码位”或“码点”。 UTF-8编码是一种针对Unicode字符集的编码方案,可以将Unicode字符集中的每个字符以不同的排列组合方式表示为一组字节,使得这些字符能够在计算机中被存储和传输。UTF-8编码采用可变长度的编码方式,对于不同范围内的字符,采用不同长度的字节表示。例如,对于ASCII字符集中的字符UTF-8编码只需要用一个字节表示,而对于其他语言的字符,则需要用两个、三个或四个字节来表示。 相比于其他编码方案,UTF-8编码具有许多优势。首先,UTF-8编码能够支持所有的Unicode字符,包括汉字、日语假名、俄文字母和阿拉伯语字母等。其次,UTF-8编码具有良好的兼容性,能够在不同的操作系统、浏览器和编辑器中使用。最后,UTF-8编码还具有节省空间的优势,因为它可以根据字符所在范围的不同动态调整字节的长度,有效地减少字节数,从而节省存储空间和带宽。 总之,Unicode字符集和UTF-8编码是现今计算机技术中使用最广泛的字符集和编码方案。他们为计算机在处理不同语言和字符类型的文本数据时提供了可靠的工具和标准,大大提高了计算机的文本应用能力。 ### 回答3: Unicode是全球字符集,它为世界上几乎所有的符号分配了唯一的标识符。由于计算机只能理解数字,Unicode为每个字符分配了一个唯一的数字,从而使计算机能够正确地显示、存储和处理文本。Unicode字符集由超过128,000个字符组成,其中包括各种字母、数字、标点符号、符号和特殊字符UTF-8是一种广泛使用的Unicode编码,它使用1到4个字节来表示每个字符UTF-8编码使用变长编码方法,这意味着不同字符使用不同数量的字节来表示。对于较小的字符UTF-8只需要1个字节,而对于较大的字符UTF-8需要多个字节。这使得UTF-8成为比其他Unicode编码更节省空间和更灵活的编码方式。 在计算机上,文本通常被存储为字节序列。使用Unicode字符集和UTF-8编码可以确保多种语言的文本能够正确存储和处理,从而实现跨语言的通信和交流。今天,大多数操作系统和应用程序都支持UnicodeUTF-8编码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值