Unicode规范化(兼容性拆分+规范组合,Normalizer::FORM_KC)解决了大部分问题。剩下的就是简体中文、繁体中文和日语汉字的字形差异,差异非常明显,不需要解决(如果要解决,需要使用简繁转换,这样@老虎會游泳就将无法幸存)。
<?php
$arr = [
'入职', '⼊职',
'内部', '內部',
'耳朵', '⽿朵',
'凉爽', '凉爽',
'试卷', '试巻',
];
for ($i=0; $i<count($arr); $i+=2) {
$a = $arr[$i];
$b = $arr[$i + 1];
$c = Normalizer::normalize($a, Normalizer::FORM_KC);
$d = Normalizer::normalize($b, Normalizer::FORM_KC);
$au = json_encode($a);
$bu = json_encode($b);
$cu = json_encode($c);
$du = json_encode($d);
echo "$a ($au) -> $c ($cu)\n";
echo "$b ($bu) -> $d ($du)\n";
echo " 相同? ", $a == $b ? '✓' : '×',
" ",
$c == $d ? '✓' : '×', "\n";
}
@老虎会游泳,上次好像搜集过一些,现在又发现了新的:
内部
內部
耳朵
⽿朵
凉爽
凉爽
试卷
试巻