Определить китайский (многобайтовый) символ в строке - PullRequest
8 голосов
/ 11 октября 2009
$str = "This is a string containing 中文 characters. Some more characters - 中华人民共和国 ";

Как определить китайские иероглифы в этой строке и распечатать часть, которая начинается с первого символа и заканчивается на "-"? (это будет "中文 символов. Еще несколько символов -").

Спасибо!

Ответы [ 2 ]

9 голосов
/ 21 октября 2009

Я решил эту проблему, используя preg_match и регулярные выражения:

$str = "This is a string containing 中文 characters. Some more characters - 中华人民共和国 ";

preg_match(/[\x{4e00}-\x{9fa5}]+.*\-/u, $str, $matches);
0 голосов
/ 11 октября 2009

PHP хранит это как Unicode? Если это так, в худшем случае вы можете шаг за шагом проходить строку, символ за символом, пока не достигнете тех, которые находятся в пределах китайского диапазона.

Проверьте это тоже PHP: Unicode - Manual

...