dize

2009-10-11 24 views
8
$str = "This is a string containing 中文 characters. Some more characters - 中华人民共和国 "; 

Nasıl bu dizeden çince karakterler algılamak ve ilk karakteri ile başlar ve biter kısmını yazdırırım çin (baytlı) karakterini Algılama? ("中文 karakter. Daha fazla karakter" -) olur.dize

Teşekkür ederiz!

cevap

9

:

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

preg_match(/[\x{4e00}-\x{9fa5}]+.*\-/u, $str, $matches); 
+0

Bunun için teşekkürler ... meraklı, nerede kullanılacağı belgelidir \ x {unicode #} belgelenmiş? – philfreo

+1

@philfreo: burada: http://www.php.net/manual/en/regexp.reference.escape.php – Savageman

0

PHP bunu Unicode olarak mı saklıyor? Eğer öyleyse, en kötüsü, karakter dizisine, karakter dizisine, Çin menziline ulaşana kadar adım atabilirsiniz.

Kontrol şuna çok PHP: Unicode - Manual

Ben preg_match ve düzenli ifadeler kullanarak bu sorunu hallettim
+0

@Josh - Boost'u önerisini takip ederseniz, ayrıca VonC cevabı bakmak isteyeceğini için Bu soru: http://stackoverflow.com/questions/1366068/whats-the-complete-range-for-chinese-characters-in-unicode –

+0

@boost, evet, php dizeyi unicode olarak saklıyor. Ama nasıl başarabilirim? Php'de pek iyi değilim. @JV, teşekkürler, ona bir bakacağım. –

+0

NCR formuna dönüştürmezseniz, işlemler sırasında karakterleri bozabilir. – Raptor