是否有一种方法可以匹配所有具有Windows-1251对应字符的UTF-8字符,而无需手动匹配每个字符的数量?有一定范围,但有太多超出范围的字符。如果可能的话,我想节省一些时间。
答案 0 :(得分:0)
我实际上找到了解决此问题的聪明方法,即使我几乎已经完成了字符列表。我将其发布到我的项目中,但可以轻松地将其调整为其他情况。
preg_replace_callback(
'#[^.]#u', function($matches) {
if ( null == (iconv("utf-8", "windows-1251//IGNORE", $matches[0])) ) {
return 'replace_pattern';
}
else return $matches[0];
},
$text
);
基本上,使用iconv
来检查unicode符号是否可以转换为Windows-1251,如果可以,则返回相同的符号,但是不能(//IGNORE
返回{ {1}}(在这种情况下),我返回我的替换模式。我敢肯定,这对处于类似情况的人都是有用的。