ANSI、GBK、GB2312、UTF-8、GB18030和 UNICODE的区别解读

      问题:

     1、编码问题经常给程序员带来一些困扰,比如编辑保存文件时,有不少字符集选项,应该选哪个呢,Unicode、utf-8、GB2312、ANSI又有什么关系呢?

     2、在简体中文系统下,ANSI 编码为什么会代表 GB2312 编码?

  

  为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 ‘中’ 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。

  不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。

  不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。

    编码演进史参考:

       0、 美国发明ANSI 的”Ascii”编码(American Standard Code for Information Interchange,美国信息互换标准代码),可以用不同字节来存储英语的文字

1、 我国 对ASCII 编码的中文扩充改造,产生了 GB2312 编码,可以表示6000多个常用汉字。

2、 汉字包括繁体和各种字符,扩充产生了 GBK 编码,它包括了 GB2312 中的编码。

3、 为了表示国内各民族的语言字符,继续把 GBK 编码扩充为 GB18030 编码。

4、 每个国家出现了各种各样的编码,必须安装相应的编码,才能解释相应编码的内容。

5、 ISO 的组织创造了一种编码 UNICODE ,这种编码非常大,可以容纳世界上任何一个文字和标志。所以只要电脑上有 UNICODE 这种编码系统,无论是全球哪种文字,只需要保存文件的时候,保存成 UNICODE 编码就可以被其他电脑正常解释。UNICODE 在网络传输中,出现了两个标准 UTF-8 和 UTF-16,分别每次传输 8个位和 16个位。

    

 

posted @   xuzhujack  阅读(936)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2019-06-03 tomcat上传图片失败
;
点击右上角即可分享
微信分享提示