Tengo casos donde los datos ingresados por el usuario desde un html textarea o entrada a veces se envían con \u00a0
(espacios sin interrupción) en lugar de espacios codificados como utf-8 json.Conversión de espacios sin rupturas a espacios en Ruby
Creo que es un error en Firefox, ya que sé que el usuario no está intencionalmente colocando espacios sin interrupción en lugar de espacios.
También hay dos errores en Ruby, uno de los cuales se puede utilizar para combatir al otro.
Por alguna razón, \s
no coincide con \u00a0
.
Sin embargo [^[:print:]]
, lo que definitivamente no debe coincidir) y \xC2\xA0
tanto coincidirá, pero considero que aquellos a ser menos que ideal formas de lidiar con el problema.
¿Hay otras recomendaciones para solucionar este problema?
¿Qué versión de Ruby? En 1.9.2/\ u00a0/hace juego. – steenslag
\ s no coincide \ u00a0 \ u00a0 coincide en 1.9, pero no estoy seguro acerca de 1.8 – CoolAJ86
Regla # 1: cuando piensas que has encontrado un error en un programa extremadamente popular, especialmente en algo que se prueba y usado extensivamente, como el manejo de la textarea de Firefox, revise su prueba de manera muy silenciosa y cuidadosa. 99 veces de cada 100, el problema estará en su lado de la cerca. Cuando veo espacios sin interrupción aparecer en un campo de texto, donde es probable que la gente pegue el texto, sospecho que Microsoft Word o un editor que está configurado para sustituir   por espacios. Puede probar fácilmente su teoría creando una página, poner un área de texto en ella e intentar duplicar el problema. –