如何比较Unicode全角字符和普通字符?

时间:2014-11-21 09:48:40

标签: php unicode compare multibyte

我的代码如下:

<?php
$str1 = 'xxxxxID';
$str2 = 'xxxxxID';

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

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

3 个答案:

答案 0 :(得分:1)

您正在寻找音译。您可以使用iconv

<?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角色都不起作用,可能会显示一些奇怪的结果。

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

使用mb_convert_encoding()将两个字符串置于相同的多字节编码(utf-8或$ str2之一),然后您可以照常比较它们,使用==