¿Cómo evitar el carácter \xc2 o en mis fragmentos de código?

2 minutos de lectura

acabo de empezar un blog de codificacióny estoy usando el complemento SyntaxHighlighter Evolved WordPress para el resaltado de sintaxis de mis fragmentos.

Acabo de terminar de escribir una publicación de Pythonic y quería probar mis fragmentos de código antes de publicar.

Si hace doble clic en el código desde dentro de mis fragmentos, el complemento dejará de resaltar el código, lo que le permitirá seleccionarlo como texto sin formato. Sin embargo, si copio y pego algún código de Python de mis fragmentos, incluye \xc2 o   chracters in. Esto hace que Python cambie la codificación:

SyntaxError: carácter no ASCII ‘\xc2’ en el archivo ex2.py en la línea 3, pero sin codificación declarada; ver http://www.python.org/peps/pep-0263.html para detalles

En particular, no quiero declarar codificaciones para cada fragmento de código de Python que escribo, y ni siquiera sé si esto resolverá el problema.

La mejor solución, por supuesto, sería hacer que mi complemento no se use   caracteres en la versión de texto sin formato. ¿O lo sería?

¿Alguien tiene alguna idea de cómo puedo solucionar este problema?

avatar de usuario
Alex Coplan

Lo tengo. Solo un poco de hurgar en la fuente del complemento solucionó este problema para mí …

Si usted embellecer la syntaxhighlighter3/scripts/shCore.js archivo, entonces puede ver que hay una variable de configuración, que incluye:

space: " "

Todo lo que tenía que hacer era cambiarlo a space: " " y volver a empaquetarlo.

Me encontré con este problema cuando el código Python se había copiado de Skype. Como uso vim para editar, seguí adelante y encontré todos estos haciendo esto:

:hls
/<space>

Esto muestra dónde no están estos caracteres de espacios impares porque no están resaltados.
Tire de uno de los caracteres que lo almacenará en el registro 0.
Use el comando sustituto y use <ctrl-R> <0> para pegar ese carácter en el símbolo del sistema.

:%s/<ctrl-R><0>/ /g

se verá como

:%s/ / /g

pero cuando se ejecuta, corregirá el problema.

NBSP no se considera un espacio en blanco con el propósito de la sangría de todos modos, por lo que debería echar un vistazo a lo que script de usuario preseleccionado lo hace e imitarlo.

¿Ha sido útil esta solución?