【问题标题】:How to compare 2 strings with different encoding and different unicode characters in PHP如何在 PHP 中比较具有不同编码和不同 unicode 字符的 2 个字符串
【发布时间】:2020-01-30 21:40:03
【问题描述】:

我需要按姓名和姓氏进行国际认证验证。但问题是,即使字符不同,我也需要返回 TRUE。

示例:

    $str1 = 'Bożydar Kamiński';
    $str2 = 'BOZYDAR KAMINSKI';
    // I need this to be TRUE
    if ($str1 == $str2) {
        echo 'YOUR BUNNY WROTE';
    }

是否有一些 php 默认函数可以将带有 unicode 字符 (str1) 的 UTF-8 字符串转换为纯拉丁字符?

【问题讨论】:

    标签: php unicode character


    【解决方案1】:

    如果您知道 UTF-8 编码器的可能差异,您可以创建自己的解码器。您可以创建一个包含所有可能的奇怪字符的表,并在函数中执行比较,然后交换等价的字符。

    【讨论】:

      【解决方案2】:
      $coll = Collator::create('');
      $coll->setStrength(Collator::PRIMARY);
      var_dump(0 == $coll->compare(
          'Bożydar Kamiński',
          'BOZYDAR KAMINSKI'
      )); // bool(true)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-24
        • 1970-01-01
        • 2012-12-04
        • 2013-03-30
        • 2018-05-27
        • 1970-01-01
        相关资源
        最近更新 更多