如何将 Unicode 全角字符与普通字符进行比较


How to compare Unicode fullwidth characters with normal characters?

我的代码看起来像:

<?php
$str1 = 'xxxxxID';
$str2 = 'xxxxxID';
$bool = ($str1 == $str2);
var_dump( $bool);//==> need return true.
?>

请告诉我,如何比较这些字符串?

您正在寻找音译。您可以使用图标:

<?php
$str1 = 'xxxxxID';
$str2 = 'xxxxxID';
$str1Translit = iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $str1);
$str2Translit = iconv('UTF-8', 'ISO-8859-1//TRANSLIT', $str2);
$bool = ($str1Translit == $str2Translit);
var_dump( $bool);//==> need return true.

但是您应该知道,这并不适用于每个 unicode 字符,并且可能会显示一些奇怪的结果。

strlen(); 将返回字符串中的字节数。但是,您的问题有些不清楚。

使用

mb_convert_encoding() 将两个字符串转换为相同的多字节编码(utf-8 或 $str 2 之一),然后您可以像往常一样使用 == 比较它们