




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 简化流程猜谜离婚协议快速达成婚姻解除
- 柴油销售区域保护与市场拓展合同范本
- 成都二手房交易房屋交易房屋抵押贷款合同
- 餐饮店装修工程结算协议
- 便利店24小时无人值守运营管理合同
- 残疾人劳动合同签订与职业康复服务对接指南
- 资产重组采矿权抵押贷款合同
- 电子课件磨工初级教学
- 教学课件封面图
- 医疗急救相关知识考试试卷含交通伤休克等考点
- 成品金属格栅施工方案
- DBJ04-T 432-2022 建设工程全过程造价咨询标准
- 山东省济南市(2024年-2025年小学四年级语文)人教版期末考试((上下)学期)试卷及答案
- 人美 版三年级美术下册(北京)《18.设计紧急避难路线图》教学设计
- SLT 478-2021 水利数据库表结构及标识符编制总则
- 01J925-1压型钢板、夹芯板屋面及墙体建筑构造
- 《霍山石斛》课件
- 浙江省杭州市西湖区2025届数学七年级第一学期期末考试试题含解析
- 医院信息机房运维服务项目需求
- 2024年重庆育才中学九年级6月中考英语模拟试题
- 有趣的汉字甲骨文演变完整模板
评论
0/150
提交评论