资讯专栏INFORMATION COLUMN

肉眼看到的相同两个字串的不同

JerryWangSAP / 1134人阅读

摘要:祭出两个相同其实不同的字符串我们肉眼看到的这两个字符串是绝对相同的对的他是一个让我们用世界上最好的语言输出下两个字串的长度我滴妈呀怎么会不同呢纳闷让我们撕下她的伪装咦这是个什么鬼不像是正常字符啊哦对了我们是用的字符集这三个应该是一个字符我

祭出两个相同(其实不同)的字符串
$strA = "8888‬";
$strB = "8888";

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

# code
var_dump($strA);
var_dump($strB);

# result
string(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], 让我们找到它.

看, 在这里

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29178.html

相关文章

  • [Leetcode] Distinct Subsequences 不同顺序字串

    摘要:计算元素值时,当末尾字母一样,实际上是左方数字加左上方数字,当不一样时,就是左方的数字。示意图代码如果这个字符串有个怎么办用暴力法,对每一位开始向后检查是否是。 Distinct Subsequences Given a string S and a string T, count the number of distinct subsequences of T in S. A su...

    SnaiLiu 评论0 收藏0
  • 詳解 ES6 Unicode

    摘要:我們得從原因理解起。這個編碼位置是唯一的。為了確保其組織性,把這個範圍的編碼區分成個區段,各自由個編碼組成。由進制格式的個位元組成代表一個編碼位置。跳脫序列可以被用來表示編碼位置從到。 為了理解 ES6 到底對於 Unicode 萬國碼有哪些新的支援。我們得從原因理解起。 Javascript 在處理 Unicode 時很有多問題 關於 Javascript 處理 Unicode 的方...

    PiscesYE 评论0 收藏0
  • Autodesk Forge Viewer 信息本地化技术分析

    摘要:默认情况下,是英文环境,调取的是的资源其实无需翻译。但是,如前面提到的,语言包只是包含了部分常规字串的翻译,如果遇到没有包含的常规字串怎么办呢例如,本例中的语言包并没有对,进行翻译,所以即使切换了语言,它们仍旧是英文。 注:本文是个人调试分析所得,非官方文档,请酌情选用参考。文中分析的数据由https://extract.autodesk.io转换下载而来。 谈到信息本地化,个人觉得包...

    littleGrow 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<