zoukankan      html  css  js  c++  java
  • UTF-8具体解释

    UTF-8是一种变长字节的编码方式。它以8位(1字节)为单位对Unicode进行编码。

    UTF-8理论上最多能够达到6字节长。但眼下全世界的字符仅仅须要4字节就能够表示完。

    UTF-8规定,对于某一字符的UTF-8编码。假设仅仅有一个字节则其最高位为0。假设是多字节,则其第一字节的开头由N位连续的1加一位0组成,其它字节开头以“10”开头。剩余字节将Unicode的二进制表示从左向右填充。首字节连续的1的个数表示字符编码所需的字节数。例如以下所看到的,

    Unicode UTF-8
    00 00 ~ 00 7F 0xxxxxxx
    00 80 ~ 07 FF 110xxxxx 10xxxxxx
    08 00 ~ FF FF 1110xxxx 10xxxxxx 10xxxxxx
    1 00 00 ~ 1F FF FF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
    20 00 00 ~ 3 FF FF FF 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
    400 00 00 ~ 7F FF FF FF 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

    如上表所看到的,汉字“文”的Unicode编码为0x6587,在0800~FFFF之间。所以UTF-8须要用3字节(1110xxxx 10xxxxxx 10xxxxxx)来表示,x使用0x6587的二进制表示来填充。终于,"文"的UTF-8编码为111001101001011010000111。

    UTF-8兼容ASCII。

    UTF-8中英文通常占3个字节。


    P.S. PHP代码演示样例

    Unicode转为UTF-8

    UTF-8转为Unicode

  • 相关阅读:
    BZOJ 1009 GT考试
    BZOJ 2085 [POI2010] Hamsters
    BZOJ 3160 万径人踪灭
    左偏树 / 非旋转treap学习笔记
    BZOJ 3217 ALOEXT
    BZOJ 3065 带插入区间第K小值
    BZOJ2716 天使玩偶
    XSY1659 [HNOI2012]永无乡
    BZOJ1367【Baltic2004】sequence
    蔡勒公式 计算星期
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/6729403.html
Copyright © 2011-2022 走看看