对UTF8编码的初步认识!
在网络中有很多地方都有采用UTF8编码,由于要编写与邮件服务端有关的程序,而邮件服务端有些地方用到了UTF8编码,所以对它有了初步的认识!
它其实和Unicode是同类,就是在编码方式上不同!
首先UTF8编码后的大小是不一定,不像Unicode编码后的大小是一样的!
我们先来看Unicode的编码:一个英文字母 “a” 和 一个汉字 “好”,编码后都是占用的空间大小是一样的,都是两个字节!
而UTF8编码:一个英文字母“a” 和 一个汉字 “好”,编码后占用的空间大小就不样了,前者是一个字节,后者是三个字节!
现在就让我们来看看UTF8编码的原理吧:
因为一个字母还有一些键盘上的符号加起来只用二进制七位就可以表示出来,而一个字节就是八位,所以UTF8就用一个字节来表式字母和一些键盘上的符号。然而当我们拿到被编码后的一个字节后怎么知道它的组成?它有可能是英文字母的一个字节,也有可能是汉字的三个字节中的一个字节!所以,UTF8是有标志位的!
当要表示的内容是 7位 的时候就用一个字节:0******* 第一个0为标志位,剩下的空间正好可以表示ASCII 0-127 的内容。
当要表示的内容在 8 到 11 位的时候就用两个字节:110***** 10****** 第一个字节的110和第二个字节的10为标志位。
当要表示的内容在 12 到 16 位的时候就用三个字节:1110***** 10****** 10****** 和上面一样,第一个字节的1110和第二、三个字节的10都是标志位,剩下的空间正好可以表示汉字。
以此类推:
四个字节:11110**** 10****** 10****** 10******
五个字节:111110*** 10****** 10****** 10****** 10******
六个字节:1111110** 10****** 10****** 10****** 10****** 10******
.............................................
..............................................
明白了没有?
编码的方法是从低位到高位
现在就让我们来看看实例吧!
黄色为标志位
其它着色为了显示其,编码后的位置
对UTF8编码的初步认识!相关推荐
- UTF-8编码规则(转)
UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所 ...
- /xiaolei.php|martin_十步解决Php Utf-8编码(转贴)
php用UTF-8总结: 1.php文件本身必须是UTF-8编码.不像Java会生成class文件,避免这个问题 2.php要输出头:header("Content-Type: text/h ...
- 字符串转换成utf-8编码
a.将字符串转换成utf-8编码的字节,并输出,然后将该字节在转换成utf-8编码字符串,在输出 b.将字符串转换后才能gbk编码的字节,并输出,然后将该字节在转换成gbk编码字符串,在输出 1 2 ...
- Python:UTF-8编码转换成GBK编码
2019独角兽企业重金招聘Python工程师标准>>> #!/usr/bin/env python # -*- coding:utf-8 -*- #UTF-8转换成GBK编码 #te ...
- 总结:被MySQL UTF8编码坑的惨痛教训...
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 最近遇到几个项目被MySQL的utf8编码坑,想起之前编码问题被坑 ...
- mysql 使用真正的utf-8编码
mysql 使用真正的utf-8编码 create database demo default character set utf8mb4 collate utf8mb4_unicode_ci;
- ajax传输是用utf8,使用ajax时UTF8编码不起作用
最近,我更改了一些要通过ajax显示的页面,但对于为什么utf8编码现在在框内显示一个问号却不知道,我有些困惑. 举个例子.最初的页面是index.php.charset已显式设置为utf8,位于中 ...
- utf8编码中文还是乱码_zend studio 乱码
zend studio 乱码 最近学习php 发现有的代码中文显示 乱码,查找原因 因为页面时utf 编码 zend 设置的 gbk 编码, 修改 zend 设置 edit - set encodin ...
- 解决Excel打开UTF-8编码的CSV文件乱码的问题 实测好用
解决Excel打开UTF-8编码的CSV文件乱码的问题 1 2 3 4 5 6 分步阅读 CSV是一个平面文件,它的编码方式有多种.比如,MongoDB以UTF-8格式存储数据,在使用mongoexp ...
最新文章
- java类的修饰词有哪些_Java类与对象及访问控制修饰词解析
- 拓扑排序之变量序列代码
- 【C语言】switch中无break的情况
- Android - Animation(二)
- 人工智能如何有效地运用于自然语言处理
- php软件开发--laravel框架
- 这几天的安排,先做个列表
- CSS选择器之基本选择器总结
- 一文精讲Wireshark的抓包和分析
- 按键精灵手机助手错误:at tempt to compare nu11 with number
- Java IO流基础
- Linux空白行:行号显示、空白行数统计、删除空白行
- 非常有用的制作logo的网站
- python 原理 pdf_利用Python处理PDF——裁剪和生成新的PDF
- 麦当劳可以免费添加可乐的!
- python画红色等边三角形面积公式_等边三角形面积公式?
- Ubuntu 16.04.3 LTS操作系统安全加固
- 国内被广泛模仿的12个国外网站
- CSS3 SVG实现可爱的动物哈士奇和狐狸动画
- 用Python分析了数千个微信昵称后,发现了这些秘密!
热门文章
- 华语乐坛趋势报告(2022)
- 信贷产品的架构设计总览
- 互联网日报 | 6月27日 星期日 | B站举办十二周年演讲;特斯拉在华召回285520辆汽车;小鹏汽车将于7月7日在港上市...
- 抖音城市美食算数报告
- ajax实现下拉列表回显,layui实现下拉复选功能的例子(包括数据的回显与上传)
- python做饼图出现重影_Matplotlib 绘制饼图解决文字重叠的方法
- 专题导读:高性能计算虚拟数据空间
- 专题导读:教育大数据
- 大数高精加减乘除(洛谷P1601、P2142、P1303、P1480题题解,Java语言描述)
- Nginx 配置 SSL 及 HTTPS 协议通信过程