用preg_replace()替换多个UTF-8字符和一个相同的acs ii char

时间:2013-01-15 17:45:47

标签: php

我必须将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);

1 个答案:

答案 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"