我必须将UTF-8字符串转换为非UTF-8字符串,我想替换:
Ậ,Ẫ,Ẩ,Ầ,Ấ,Ặ,Ẵ,Ẳ,Ằ,Ắ,Ă,Ạ,Ã,Ả,À,Á到 A ,
Ự,Ữ,Ử,Ừ,Ứ,Ư,Ụ,Ũ,Ủ,Ù,Ú到 U ,
Ợ,Ỡ,Ở,Ờ,Ớ,Ơ,Ộ,Ỗ,Ổ,Ồ,Ố,Ô,Ọ,Õ,Ỏ,Ò,Ó到 O ...以及更多相同的案例
通过php preg_replace()
?
我可以使用?:
$string = preg_replace('/Ậ,Ẫ,Ẩ,Ầ,Ấ,Â,Ặ,Ẵ,Ẳ,Ằ,Ắ,Ă,Ạ,Ã,Ả,À,Á/', 'A', $string);
$string = preg_replace('/Ợ,Ỡ,Ở,Ờ,Ớ,Ơ,Ộ,Ỗ,Ổ,Ồ,Ố,Ô,Ọ,Õ,Ỏ,Ò,Ó/', 'O', $string);
$string = preg_replace('/Ự,Ữ,Ử,Ừ,Ứ,Ư,Ụ,Ũ,Ủ,Ù,Ú/', 'U', $string);
答案 0 :(得分:1)
由于正则表达式不是解决此问题的最佳方法,我可以提示PHP iconv
设施:
$string = 'ỬỪỨƯỤ';
// temporarily switch locale
$locale = setlocale(LC_CTYPE, 'en_US.UTF-8');
// use iconv to transliterate
$string = iconv('utf-8', 'us-ascii//TRANSLIT', $string);
// restore locale
setlocale(LC_CTYPE, $locale);
// $string is now "UUUUU"