对utf-8编码的简单解析
来源:互联网 发布:淘宝代运营合作 编辑:程序博客网 时间:2024/05/17 22:32
对于UTF-8编码中的任意字节B,如果B的第一位为0,则B为ASCII码,并且B独立的表示一个字符;
如果B的第一位为1,第二位为0,则B为一个非ASCII字符(该字符由多个字节表示)中的一个字节,并且不为字符的第一个字节编码;
如果B的前两位为1,第三位为0,则B为一个非ASCII字符(该字符由多个字节表示)中的第一个字节,并且该字符由两个字节表示;
如果B的前三位为1,第四位为0,则B为一个非ASCII字符(该字符由多个字节表示)中的第一个字节,并且该字符由三个字节表示;
如果B的前四位为1,第五位为0,则B为一个非ASCII字符(该字符由多个字节表示)中的第一个字节,并且该字符由四个字节表示;
因此,对UTF-8编码中的任意字节,根据第一位,可判断是否为ASCII字符;
根据前二位,可判断该字节是否为一个字符编码的第一个字节;
根据前四位(如果前两位均为1),可确定该字节为字符编码的第一个字节,并且可判断对应的字符由几个字节表示;
根据前五位(如果前四位为1),可判断编码是否有错误或数据传输过程中是否有错误。
如果B的第一位为1,第二位为0,则B为一个非ASCII字符(该字符由多个字节表示)中的一个字节,并且不为字符的第一个字节编码;
如果B的前两位为1,第三位为0,则B为一个非ASCII字符(该字符由多个字节表示)中的第一个字节,并且该字符由两个字节表示;
如果B的前三位为1,第四位为0,则B为一个非ASCII字符(该字符由多个字节表示)中的第一个字节,并且该字符由三个字节表示;
如果B的前四位为1,第五位为0,则B为一个非ASCII字符(该字符由多个字节表示)中的第一个字节,并且该字符由四个字节表示;
因此,对UTF-8编码中的任意字节,根据第一位,可判断是否为ASCII字符;
根据前二位,可判断该字节是否为一个字符编码的第一个字节;
根据前四位(如果前两位均为1),可确定该字节为字符编码的第一个字节,并且可判断对应的字符由几个字节表示;
根据前五位(如果前四位为1),可判断编码是否有错误或数据传输过程中是否有错误。
阅读全文
0 0
- 对utf-8编码的简单解析
- UTF-8编码解析
- 对nginx中utf-8编码格式解析函数的理解
- 编码/字符集(UTF-8,UTF-16,UTF-32)的简单介绍
- LoadRunner 7.8 对UTF-8编码的支持
- Java输出流对UTF-8编码的处理
- [python爬虫]对html解析读取编码格式,统一转码为utf-8
- 对URL进行编码(UTF-8)
- UTF-8编码 与 URL 解析
- php unicode转utf-8编码 解析
- PHP对GB编码动态转UTF-8编码的几种方法评测
- php对gb编码动态转utf-8编码的几种方法评测
- UTF - 8 编码格式简单介绍
- UTF-8、UTF-16、UTF-32之间的编码转换
- UTF-8、UTF-16、UTF-32编码的相互转换
- UTF-8、UTF-16、UTF-32编码的相互转换
- UTF-8的编码方式
- UTF-8编码的转换
- 20muduo_base库源码分析(十一)
- [bzoj4867] [Ynoi2017]舌尖上的由乃
- 九度[1008]-最短路径问题
- 服务器网站报错:由于扩展配置问题无法提供您请求的页面,请添加MIME映射,针对mp4,flv文件类型无法打开。
- 嵌入式系统软件-4.4
- 对utf-8编码的简单解析
- 数组和数组的反转
- vagrant lnmp css 缓存 乱码
- 买票系统模拟Java高并发(ConcurrentQueue的解决方案)
- Java中Date日期格式的各种转换
- sqlite3命令
- luogu #2680 运输计划(二分答案+树上差分)(noip2015)
- MapReduce Join
- [leetcode] 11 Container With Most Water