博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
肉眼看到的相同两个字串的不同
阅读量:7260 次
发布时间:2019-06-29

本文共 676 字,大约阅读时间需要 2 分钟。

祭出两个相同(其实不同)的字符串

$strA = '8888‬';$strB = '8888';

我们肉眼看到的这两个字符串是绝对相同的, 对的, 他是一个'8888', 让我们用 php (世界上最好的语言) 输出下两个字串的长度

# codevar_dump($strA);var_dump($strB);# resultstring(7) "8888‬"string(4) "8888"

我滴妈呀, 怎么会不同呢, 纳闷..

让我们撕下她的伪装

for ($i = 0, $iMax = strlen($strA); $i < $iMax; $i++) {    var_dump($strA[$i]);}
string(1) "8"string(1) "8"string(1) "8"string(1) "8"string(1) "�"string(1) "�"string(1) "�"

咦, 这是个什么鬼. 不像是正常字符啊. 哦, 对了, 我们是用的Utf-8 字符集, 这三个应该是一个字符, 我们把它组合起来

获取到 ASCII 码值

for ($i = 0, $iMax = strlen($strA); $i < $iMax; $i++) {    var_dump(ord($strA[$i]));}
int(56)int(56)int(56)int(56)int(226)int(128)int(172)

这个编码值是 [226 128 172], 让我们找到它.

看, 在这里

来自于网站, 好像是输出格式化标识符. 以上.

转载地址:http://mxkdm.baihongyu.com/

你可能感兴趣的文章
php抽象类和抽象方法
查看>>
得到输入内容的首字母
查看>>
sklearn特征选择和分类模型
查看>>
设计模式_桥梁模式
查看>>
设计模式C++实现——工厂方法模式
查看>>
语言数据类型
查看>>
Sql 解析XML 解决方案
查看>>
C++ mfc
查看>>
hadoop搭建与eclipse开发环境设置
查看>>
封装一个信号量集操作函数的工具
查看>>
职责要求
查看>>
java反射机制
查看>>
哈哈,好一个 uri,
查看>>
LVM扩容
查看>>
三:简单工厂模式
查看>>
正则表达式元字符
查看>>
【vue系列】elementUI 穿梭框右侧获取当前选中项的值的思路
查看>>
laravel and lumen 软删除操作
查看>>
数据集---Zachary's karate club---等
查看>>
Django之Form组件
查看>>