博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符编码简介
阅读量:6935 次
发布时间:2019-06-27

本文共 827 字,大约阅读时间需要 2 分钟。

涉及中文的编程时,经常遇到字符编码的问题。这些问题,大多源自于概念之间的混淆。

理顺字符编码概念之间的关系,即可避免大多数问题。

经常提到的几个概念如下:

  • ASCII
  • Unicode
  • UTF-8
  • GBK
  • GB2312
  • GB18030
  • charset
  • encoding

Charset and encoding

  • charset(字符集): 是 set,即,字符的集合。
  • encoding(字符编码): 是 map,即,2 个字符集合之间的映射关系。
    主要用于字符集合之间的相互转换。

charset 字符集合

  • ASCII: 主要用于表示英语等单字节的语言。

    • standard ASCII: 取值范围是0~127,可以用7个bit表示。
    • Extended ASCII: 一般机器一字节 8 位,取值范围是 0-255。
      因此各厂商制定了很多种 ASCII 码的扩展规范。
      Latin-1 是图形界面中广泛使用的 扩展 ASCII 码。
  • GB系: 主要用于表示汉字,中国的国家标准。双字节编码。
    按推出时间的先后顺序:GB2312 –> GBK –> GB18030
  • Unicode: 为了统一表示各国语言,18位二进制数表示。

encoding 字符集之间的映射关系

字符编码与字符集的名字通常是一样的,unicode 例外。

unicode 存在多种实现方式,所以,字符编码名字较多,如 utf8/utf16/utf32 等。

编程中,建议主要使用如下 2 种编码。

  • ASCII 字符编码: 纯英文时使用。ASCII 字符集的编码方式。
  • UTF-8: 涉及汉字等非英文字符时使用。Unicode 字符集的实现方式之一。

standard ASCII

IBM expanded ASCII

Latin-1

编号为128~159的是一些控制字符,表中没有列出。

转载于:https://www.cnblogs.com/misspy/p/3601704.html

你可能感兴趣的文章
如何根据动态SQL代码自动生成DTO
查看>>
html input="file" 浏览时只显示指定文件类型 xls、xlsx、csv
查看>>
Android Export aborted because fatal error were fo
查看>>
在window平台下模拟Liunx使用GCC环境进行编译C的SO库。
查看>>
原来一直纠结MQ的用法,今天看到了一个最经典的例子。
查看>>
Resource is out of sync with the file system的解决办法
查看>>
交叉编译openssl不修改Makefile的方法
查看>>
linux 常用流量查看命令
查看>>
VMware ESXi Windows虚拟机磁盘扩展小结
查看>>
Linux常用命令
查看>>
方便的将数字转成字符串类型并在前面补0
查看>>
mysql主从复制
查看>>
宫崎骏首次因为自己的新作流泪
查看>>
SAP sybase16 安装的一些细节问题
查看>>
linux服务器同步时间
查看>>
Android开发常见问题及解决方法
查看>>
Linux 基础 - 磁盘管理 - 01
查看>>
我的友情链接
查看>>
繁忙的IT基础设施可能导致安全灾难
查看>>
Objective-C之Block
查看>>