版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省南京市2024-2025学年高二上学期11月期中生物试题 含解析
- 旅馆的会计处理分录-记账实操
- 新疆某小区高层剪力墙结构商住楼施工组织设计(内容详细、示意图丰富)
- 2025新译林版英语七年级下Unit 1 Home单词表
- 《规范汉字书写传承中华文化之美》主题班会教案3篇
- 第17课《屈原(节选)》教学设计+2023-2024学年统编版语文九年级下册
- 强化素质-高效务实-共同建设生态文明
- 小升初六年级语文下册课外阅读专项训练
- 驾驶员个人工作总结
- 科室一次性医用耗材管理与使用规范和流程
- 飞控系统讲解
- 农村土地承包租赁合同范本版
- 中医病专科申报课件
- 2024年重庆国丰实业有限公司招聘笔试冲刺题(带答案解析)
- 多发性骨髓瘤教学查房
- web前端开发工程师职业生涯规划
- 体育过程性评价实施方案
- 【客舱服务质量与空中乘务员综合素质浅论4800字(论文)】
- 血管活性药物
- 港口现场装卸指导员工作职责
- 牧业设备-TMR标准化操作流程-培训课件
评论
0/150
提交评论