如何在PHP中比较2个具有不同编码和不同unicode字符的字符串

时间:2019-10-01 14:52:08

标签: php unicode character

我需要按姓名进行国际认证。但是问题是,即使字符不同,我也需要返回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字符串转换为普通的拉丁字符?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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