【问题标题】:How to check similar string如何检查相似的字符串
【发布时间】:2017-12-11 10:42:25
【问题描述】:

我想知道是否有办法检查两个字符串是否相似。我的字符串在字节长度和 urlencode 上有相同但不同。

$unit1 = '㎏';

$unit2 = 'kg';

strlen($unit1); // 3

strlen($unit2); // 2

urlencode($unit1); // %E3%8E%8F

urlencode($unit2); // kg

【问题讨论】:

  • $unit1 有什么特殊字符吗?
  • @PrateikDarji 。我认为不,$unit1 是从日语输入键盘输入的,它是半角的。
  • 这些字符串仅在您选择的字体中看起来相同(公平地说,大多数字体)。它们实际上非常不同,如 url 编码所示。如果你知道你会遇到什么不寻常的字符,你可以逐个翻译它们,但除此之外你运气不好。 stackoverflow.com/questions/39948627/… 该问题探讨了 javascript 中的类似问题。
  • @SimonBrahan 好吧,似乎没有办法检测到,所以我认为我需要逐个翻译它们。无论如何谢谢你
  • 可以尝试为每个符号定义一个映射。但是话又说回来,它肯定会在不同的(和/或特定的)字体上失败。如果我站在你的立场上 - 在这种情况下,我肯定会从正确定义相似性开始并缩小我的界限,以便任务得到很好的约束,因此有可能得到解决。

标签: php


【解决方案1】:

由于目前这是一个安全问题,因此周围应该有列表..

我在这个答案中找到了一个:Find similar ASCII character in Unicode

http://www.unicode.org/Public/security/latest/confusables.txt

维基百科上有关它的一些信息:https://en.wikipedia.org/wiki/Homoglyph

另一个链接https://github.com/codebox/homoglyph

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-16
    相关资源
    最近更新 更多