zoukankan      html  css  js  c++  java
  • 字符编码简介

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

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

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

    • 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的是一些控制字符,表中没有列出。

  • 相关阅读:
    图解 PHP运行环境配置和开发环境的配置
    PHP学习笔记(2)语法和数据类型
    Jquery调用 新浪微博API 用户资料
    [转载]并行计算部分总结
    Qt QTreeWidget节点的添加+双击响应+删除详解
    C/C++中函数参数传递详解
    C语言预处理——宏定义
    cuda工程在VS中使用心得
    MPI用于矩阵乘积示例
    开到荼蘼花事了,永世相守孟婆桥
  • 原文地址:https://www.cnblogs.com/misspy/p/3601704.html
Copyright © 2011-2022 走看看