Carácter especial agregado a css (​) ¿de dónde vino esto?

Estaba haciendo un montón de operaciones de búsqueda y reemplazo en el bloc de notas ++ para minimizar mi css de manera efectiva, principalmente eliminando espacios en blanco / pestañas, etc.) Esto terminó rompiendo gran parte de mi css.

Aparentemente, se insertó un carácter extraño (​) por todas partes) Usando el bloc de notas ++ en UTF-8 sin BOM, no puedo verlos, pero aparecieron en una fuente de vista.

Pude eliminarlos haciendo una búsqueda de reemplazo en codificación ANSI, pero mi pregunta es, ¿qué es este carácter y por qué podría haber aparecido?

preguntado el 12 de junio de 12 a las 18:06

¿Sabes si alguno de tus códigos se pegó desde una aplicación como MS Word? -

2 Respuestas

La cadena "​" es la forma codificada UTF-8 de ZWSP cuando se interpreta erróneamente como datos codificados de Windows-1252. (Comprobado esto usando un buen decodificador UTF-8.) Esto explica por qué no lo ve en Notepad++ en modo UTF-8; ZWSP (espacio de ancho cero) es un carácter invisible sin ancho.

Aparentemente, los navegadores están interpretando la hoja de estilo como codificada en Windows-1252. Guardando el archivo con BOM podría ayudar, ya que entonces los navegadores probablemente adivinarían mejor la codificación. La solución real es asegurarse (de una manera dependiente del servidor) de que el servidor envíe el encabezado de tipo de contenido apropiado para el archivo CSS.

Pero si este es el único carácter que no es Ascii en su archivo CSS, no importa en la práctica, una vez que haya eliminado los datos ofensivos.

No conozco ninguna forma simple de hacer que Notepad ++ inserte ZWSP (por supuesto, podría usar las utilidades generales de inserción de caracteres en el sistema), por lo que es un poco misterioso de dónde vino. Tal vez a través de copiar y pegar desde algún lugar.

Respondido el 12 de junio de 12 a las 19:06

Solo un FYI para el lector: hace años, vi que esto comenzaba a aparecer en mis archivos JS externos e IE se negó a ejecutar mi JS. Descubrí que era un problema de codificación causado por una configuración incorrecta en Adobe GoLive. Si no recuerdo mal, GoLive insertó el carácter al subirlo por FTP al servidor. Ahora ya no uso editores WYSIWYG. - Sparky

Genial, gracias!. Puntos de bonificación si tiene un .htaccess fragmento para garantizar el tipo de contenido adecuado para mi css ;-) - Zach Lysobey

Zach L, si sus archivos .css están codificados en UTF-8 (y cualquier archivo ASCII puro lo está trivialmente), puede usar lo siguiente en .htaccess: AddType text/css;charset=utf-8 css - Jukka K. Korpela

Usando el complemento de desarrollador web o la extensión en Firefox, puede ver el carácter problemático en el documento css.

En Visual Studio todo lo que pude ver fue:

}
.t

El desarrollador web mostró un carácter oculto no deseado, una "a" con un signo de intercalación en la parte superior:

}
â.t

El enlace del codificador utf anterior reveló esto

} (the encoded character for ampersand)
.t   

y este

pero simplemente solucione el problema borrando y volviendo a escribir.

Respondido el 25 de junio de 12 a las 22:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.