JS中的File(三):文件编码格式(ASCII、Unicode、UTF8等)

本文详细介绍了在文件操作中常见的编码格式,包括ASCII的8位字符限制、GB2312/GBK扩展汉字处理、Unicode的16/32位设计以及UTF-8/16/32的可变长度编码,帮助读者避免文件乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在进行文件读写的时候,如果没有了解清楚文件的编码格式,可能就会在解析或者写入的时候生成乱码。这是非常让人心烦的!

因此在这里对常用的文件编码格式做一个详细的介绍

一、ASCII

这是基于拉丁字母的字符编码方法,比较简单,无法表明汉字以及其他的复杂符号

编码大小为8bit,也就是一个字节,最多可以表示256个字符。
其中0-31为控制字符(比如换行回车等),32-126为打印字符(比如A-Z、a-b),127为删除命令 

* 完整的码表:Ascii完整码表(256个)_ascii码对照表-CSDN博客

二、GB2312和GBK

这两种编码主要是解决了汉字收录问题。

  • GB2312编码:16bit(2个字节),适用于汉字处理、汉字通信等系统之间的信息交换,通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持
  • GBK编码:16bit(2个字节),兼容GB2312,收录了 21003 个汉字,共有 23940 个码位。而且它与 Unicode 组织的Unicode编码完全兼容

三、Unicode 和 UTF-8、UTF-16、UTF-32

  • Unicode 编码:通常16bit(2个字节),可以对应所有符号的编码。

把常用的放到 0x0000 - 0xFFFF,这叫做基本平面(BMP);从 0x010000 - 0x10FFFF 再划分为其他平面。unicode只是一种编码规范,定义了任意一个字符到数字的一一对应关系。Unicode给所有的字符一一对应的关系,但是如果用来储存太浪费空间,比如,字符'A',ASCII编码只需要一个字节(8位),但是用Unicode就翻了一倍。

  • UTF-8,Unicode Transformation Format,意思是为可变长度编码,通常一个字符用1-4个字节表示,兼容ASCII编码,与Unicode的转换关系如下:

  •  UTF-16和UTF-32同理:UTF-16,可变长编码,通常是以16bit(2字节)为一个字符块,1-2字符块为编码大小范围。在处理特殊字符(如表情符号)时,UTF-16 的变长特性使得某些字符可能占用4个字节;UTF-32中一个字符始终占用4个字节,定长编码方式,适用于对所有字符使用相同的字节长度的场景
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

音仔小瓜皮

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

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

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

打赏作者

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

抵扣说明:

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

余额充值