版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——谈谈php中的unicode和utf8编码谈谈php中的unicode和utf8编码
本文给大家深入议论了unicode和utf8这两种编码的关系,理解好了会察觉网上一些旧的东西,是严重多余兼过期的,由于从utf-8流行开头到现在,早已经由原来六字节可变编码到实际完全居于unicodeUCS-2的稳定阶段。
重新熟悉unicode和utf8编码
直到今天,切实的说是方才,我才知道UTF-8编码和Unicode编码是不一样的,是有识别的囧
他们之间是有确定的联系的,看看他们的识别:
UTF-8的长度是不确定的,有可能是1、2、3字节
Unicode长度确定,2个字节(USC-2)
UTF-8可以和Unicode彼此转换
unicode和utf8的关系
Unicode16进制
UTF-8二进制
0000-007F0xxxxxxx
0080-07FF110xxxxx10xxxxxx
0800-FFFF1110xxxx10xxxxxx10xxxxxx
上面的表格有2个意思,第一个显而易见就是说Unicode和UTF-8字符范围的对应,还有一个可以看出Unicode怎么和UTF-8彼此转换:
先说UTF-8到Unicode的转换
UTF-8编码的二进制和上面的3种格式举行匹配,匹配到之后去掉固定位(表格中的非x位置),然后从右到左每8位一组,不够8位左边不领,凑够2个字节16bits,这16bits所表示的就是UTF-8对应的Unicode编码,看看下面几个例子:
上面图片中的文字编码格式为UTF-8,可以用WinHex看到其16进制表示
复制代码代码如下:
字符=UTF-8=UTF-8二进制=去掉固定位置凑够16位的二进制=16进制
汉=E6B189=111001101011000110001001=0110110001001001=6C49
字=E5AD97=111001011010110110010111=0101101101010111=5B57
#下面是在chrome命令行下面运行的结果
\u6C49
汉
\u5B57
字
#到这里的'话,从UTF-8转换到Unicode已经是一件分外轻易的事了,看看转换的伪代码
读取一个字节,11100110
判断该UTF-8字符的格式,属于第三种,3个字节
持续读取2个字节得到111001011010110110010111
按照格式去掉固定位101101101010111
不够16位,左边补零0101101101010111=5B57
再看看从Unicode到UTF-8的转换
复制代码代码如下:
5B57
获取5B57所在的Unicode范围,0800=5B57=FFFF,得知5B57的UTF-8有三个字节,形式为1110xxxx10xxxxxx10xxxxxx
获取5B57的二进制编码101101101010111
用上一步骤的二进制编码从右至左拼接UTF-8编码111001011010110110010111
说说问题
再说说今天这个问题的起因,从前端输入好多单词,UTF-8格式每个词最多30个字节,因此会在前端和后台分别做验证,javascript用的是Unicode编码,后端程序用的是UTF-8编码,现在的解决手段是这样
前端
?
1
2
3
4
谈谈php中的unicode和utf8编码
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
functionutf8_bytesstr
varlen=0,unicode;
forvari=0;istr.length;i++
unicode=str.charCodeAti;
ifunicode0x0080
++len;
elseifunicode0x0800
len+=2;
elseifunicode=0xFFFF
len+=3;
else
throwcharactersmustbeUSC-2!!
returnlen;
#例子
utf8_bytesasdasdas
8
utf8_bytesyrt燕睿涛
12
后台
?
1
2
3
4
#对于GBK字符串
$len=ceils
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《学前教育法》是学前教育工作者的新征程
- 中考物理复习主题单元4第7课时运动的世界课件
- 第一章集合与常用逻辑用语考点三充分条件与必要条件教案
- 《玛丽哭了》教案讲解
- 员工灾难救助与重建指导
- 学校地下车库建设合同
- 供水管道维修班组施工合同
- 武汉市足球场租赁合同
- 保安巡逻安全操作手册
- 校园安全保卫工作手册
- 标书密封条模板大收集
- 教师专业发展路径研究
- 文化中心建筑方案
- 宪法知识竞赛试题及答案(100道)
- 专利侵权与维权
- 《钢结构的检测》课件
- 2024虚拟电厂管理规范
- 《膝盖积水症状》课件
- 专题2.2 绝对值的综合(压轴题专项讲练)(北师大版)(原卷版)
- 河南省青桐鸣大联考2023-2024学年高一上学期12月月考试题化学
- 第20课珍爱国宝──古代陶瓷艺术
评论
0/150
提交评论