zoukankan      html  css  js  c++  java
  • ASCII, Unicode 与 UTF-8

    1,ASCII

    由于计算机是美国人发明的,最早只有127个字符,即大小写英文字母、数字、一些符号,被编码到计算机里,这个编码表就是ASCII表。这时每个字符用1 Byte表示。

    2,Unicode

    当其他语言也需要在计算机上表示时,1 Byte显然不够,这时Unicode出现了。Unicode试图把所有语言统一到一套编码,它与ASCII的区别是:ASCII用1 Byte表示字符;Unicode通常用2 Bytes,极端情况下用4~6 Bytes。ASCII扩展到Unicode也很简单,在前面补0即可。

    3,UTF-8

    Unicode的一个问题是效率,如果全篇文本都是英文,那么与ASCII相比Unicode占用的空间至少多了一倍。这时候又出现了把Unicode转化为“可变长编码”的做法,这就是UTF-8。UTF-8把一个Unicode根据不同数字大小编码成1~6 Bytes,常用英文字母1 Byte,汉字通常是3 Bytes,只有很偏僻的字符才会编码成4~6 Bytes。

    4,在计算机中的使用

    在计算机内存,统一使用Unicode编码,当需要保存到硬盘或者需要传输时,转换成UTF-8。

    例如,用记事本编辑文本时,

    image

    文件存在硬盘中,是UTF-8编码;用记事本打开文件,先转换成Unicode送到内存。

    又例如,浏览网页时,

    image

    上述内容来自 廖雪峰。

  • 相关阅读:
    『空』
    退役前的做题记录 Ⅰ
    BZOJ3600 没有人的算术(替罪羊树,线段树)
    洛谷P5324 [BJOI2019]删数(线段树)
    洛谷P4696 [CEOI2011]Matching(KMP)
    Leetcode 638 大礼包 DP
    Leetcode 86 分割链表
    Leetcode 71 简化路径
    Leetcode 17.15 最长单词 剪枝与记忆化
    Leetcode 17.22单词转换 dfs+回溯+剪枝
  • 原文地址:https://www.cnblogs.com/freshair_cnblog/p/10001364.html
Copyright © 2011-2022 走看看