Pregunta

Normalmente me acaba de hacer esto.

$str = preg_replace('#(\d+)#', ' $1 ', $str);

Si hubiera sabido que iba a ser UTF-8 Yo añadiría una minúscula "u" modificador al patrón y yo creo que sería bueno. Pero debido a los informes de UTF-8, teniendo en 2x y 3x algunos casos el espacio de almacenamiento que se necesitarían si se utilizara el carácter nativo fijado, estoy tratando de no restringir la aplicación a UTF-8.

Por lo tanto, estoy tratando de mantenerse alejado de mis funciones favoritas preg_.

La mayoría de las cosas han sido bastante sencillo hasta ahora, pero estoy un poco atascado en reemplazos en las que normalmente haría uso de las clases de caracteres en preg_ tales como "\ d".

¿Fue útil?

Solución

Implementar un contenedor de almacenamiento con mb_convert_encoding tan internamente es suficiente para manipular UTF-8.

(sigo pensando que debe requerir UTF-8 y salvar a todos un montón de problemas.)

Otros consejos

Creo que codificación UTF-8 es tal que nada en la salida codificada con un valor de byte de 127 o menos es siempre el juego de caracteres ASCII que el valor de byte y nunca parte de una secuencia de bytes múltiples. Para que pueda seguir fingiendo la codificación ASCII es en esta situación y no causar problemas (como espacios y dígitos son ASCII).

Vea la descripción en http://en.wikipedia.org/wiki/UTF-8 donde se muestra que todos los bytes en una secuencia multibyte tiene fijado el bit más significativo (por ejemplo, son todos> 127).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top