在网络中有很多地方都有采用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******
.............................................
..............................................
明白了没有?
编码的方法是从低位到高位
现在就让我们来看看实例吧!
黄色为标志位
其它着色为了显示其,编码后的位置
Unicode十六进制
|
Unicode二进制
|
UTF8二进制
|
UTF8十六进制
|
UTF8字节数
|
B
|
00001011
|
00001010
|
B
|
1
|
9D
|
00010011101
|
11000010 10011101
|
C2 9D
|
2
|
A89E
|
10101000 10011110
|
11101010 10100010 10011110
|
EA A2 9E
|
3
|
分享到:
相关推荐
对UTF8编码的初步认识
电脑UTF8编码表 完不完整不知道 也是找的 嗯 就是这样
为大家提供Python的UTF-8编码查询表,大家可以对照左列的编码查询右列的汉字。 例:\u4e00对应汉字“一”
内容为utf8编码和unicode编码相互转换的C代码,关于utf8和unicode的用途另一篇博客有介绍,请参考。 压缩包 : ntf_code.rar 列表 ntf_code\uni_utf8.h ntf_code\utf8_u.c ntf_code\utf82u.c ntf_code\u2utf8.c ntf_...
中文转UTF-8编码,中文转UTF-8编码,中文转UTF-8编码
GBK、UTF-8批量文件3秒快速转码工具(支持GBK,UTF-8免费转换),UTF-8/GBK编码在线转换工具,压缩包可以有多目录与文件,如目录中有图片不会转码,但是会随转码好的文件一起打包下载。 使用帮助 . 上传压缩包(仅支持zip...
如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节,而如果UNICODE字符由4个字节表示,则编码成UTF-8可能需要6个字节。用4个或6个字节去编码一个UNICODE字符可能太多了,但很少会遇到那样的UNICODE...
UTF8字符编码:windows编码、文本工具的字符编码、Java编译器的字符编码、MySql的UTF8编码
java-utf8编码统一filter,使用过滤器统一更改字符集为utf8
GBK编码与UTF8编码互转
utf8编码汉字获取首字母,去掉ConvertGBKToUtf8(ch);函数和引用库,ASCII编码汉字也可获取拼音首字母,第一个cpp是所有汉字可以获取首字母,第二个cpp仅针对常用汉字可用的c++获取汉字首字母
VB(Visual Basic) UTF8 字符编码 常常使用 VB(Visual Basic) 程序 Post到其他程序时有关中文正总老是乱码、怎么也不好解决、 这里我们做了一小方法、直接先将我们要发送的中文字符转换为UTF8字符集的编码然后在发送...
gb2312_unicode_utf8汉字编码对照表
批量文件GBK-UTF8编码转换器
EncodeDecode & ANSI-UTF8编码转换工具
文件里有详细的代码,编码格式选择UTF-8编码,亲测在linux下可以直接运行。泰文在osd输出的流程一般是泰文先转换成Unicode编码,然后调用freetype进行文字渲染叠加
souce insight支持utf8编码
UTF8汉字编码对照
UTF7 编码及解码工具 用于XSS方面
可以将文字转换为UTF-8编码的一个小工具,非常实用。