Detectar carácter chino (varios bytes) en la cadena
Pregunta
$str = "This is a string containing 中文 characters. Some more characters - 中华人民共和国 ";
¿Cómo puedo detectar caracteres chinos de esta cadena e imprimir la parte que comienza con el primer carácter y termina con "-"? (Que sería "caracteres 中文 Algunos más caracteres -.").
Gracias!
Solución
He resuelto este problema utilizando preg_match y expresiones regulares:
$str = "This is a string containing 中文 characters. Some more characters - 中华人民共和国 ";
preg_match(/[\x{4e00}-\x{9fa5}]+.*\-/u, $str, $matches);
Otros consejos
¿PHP se almacena esto como Unicode? Si es así, en el peor que podría pasar a través de la cadena, carácter por carácter, hasta llegar a los que están dentro del rango chino.
Mira esto también PHP: Unicode - Manual
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow