El saboteador silencioso que todo hispanohablante ha sufrido
Copias un fragmento de codigo de un blog en espanol, lo pegas en la terminal y obtienes un error que no entiendes. El codigo parece identico al original. Diez minutos despues descubres que las comillas estan ligeramente curvadas. Esas son comillas tipograficas y rompen cualquier interprete, compilador o analizador de ficheros de configuracion.
Este problema es especialmente frecuente entre desarrolladores hispanohablantes porque:
- Los procesadores de texto en espanol activan la autocorreccion de comillas por defecto
- Muchisimo contenido tecnico se escribe primero en Word o Google Docs antes de publicarse
- Los PDF en espanol son una fuente habitual de codigo con comillas ya corruptas
- Algunos editores CMS como WordPress convierten las comillas al guardar el articulo
Comillas rectas vs comillas tipograficas: la diferencia tecnica
Comillas rectas (las que espera cualquier lenguaje de programacion):
', U+0027, apostrofo ASCII / comilla simple recta", U+0022, comilla doble recta
Comillas tipograficas (las que insertan Word, Pages y Google Docs en espanol):
', U+2018, comilla simple de apertura (curva izquierda)', U+2019, comilla simple de cierre / apostrofo tipografico", U+201C, comilla doble de apertura", U+201D, comilla doble de cierre
Son caracteres Unicode completamente distintos. Ningun shell, lenguaje de programacion ni formato de configuracion los trata como equivalentes a las comillas ASCII.
El problema especifico del teclado espanol
El teclado QWERTY espanol (ES) tiene su propia particularidad con las comillas. En el teclado estandar espanol:
- La tecla
"produce comillas dobles rectas ASCII cuando se escribe directamente - Sin embargo, al escribir en Word o Google Docs con la autocorreccion activada, esas comillas rectas se convierten automaticamente en tipograficas al terminar la palabra
Ademas, algunos teclados espanoles y latinoamericanos tienen configuradas las comillas angulares o francesas (<< y >>) como variante tipografica. Aunque estas comillas se usan correctamente en tipografia espanola formal, son igual de incompatibles con el codigo que las curvadas anglosasonas.
Resumen del problema por sistema operativo:
| Sistema | Autocorreccion activa por defecto | Como se activa |
|---|---|---|
| Word (Windows/Mac) | Si | Opciones > Autocorreccion > Autoformato |
| Google Docs | Si | Herramientas > Preferencias |
| Pages (Mac) | Si | Pages > Preferencias > Autocorreccion |
| LibreOffice | Si | Herramientas > Opciones de autocorreccion |
Como desactivar las comillas inteligentes en Word y Google Docs en espanol
En Microsoft Word (Windows y Mac)
- Ve a Archivo > Opciones > Revision
- Haz clic en Opciones de Autocorreccion...
- Selecciona la pestana Autoformato mientras escribe
- Desmarca la casilla "Reemplazar comillas rectas con tipograficas"
- Haz lo mismo en la pestana Autoformato para aplicarlo a documentos existentes
Este ajuste se guarda por perfil de usuario, no por documento, asi que solo hay que hacerlo una vez.
En Google Docs
- Ve al menu Herramientas > Preferencias
- Desmarca la casilla "Usar comillas tipograficas"
- Haz clic en Aceptar
La configuracion se guarda en tu cuenta de Google y se aplica a todos los documentos nuevos.
Que se rompe exactamente cuando hay comillas tipograficas
Comandos de shell (bash, zsh, PowerShell): las comillas ASCII delimitan cadenas y argumentos. Una comilla tipografica provoca un error de sintaxis inmediato o, peor, un comportamiento inesperado sin mensaje de error claro.
JSON: el estandar JSON (RFC 8259) exige U+0022 para delimitadores de cadenas y claves. Una comilla tipografica produce un error de parseo en cualquier biblioteca JSON de cualquier lenguaje.
YAML y archivos .env: los ficheros de configuracion de aplicaciones, variables de entorno y ficheros Docker Compose esperan exclusivamente comillas ASCII. Una comilla tipografica corrompe el fichero en silencio.
Python, JavaScript, PHP: los literales de cadena necesitan comillas ASCII. Las tipograficas producen un SyntaxError que a veces no es evidente porque el caracter parece identico visualmente.
SQL: las cadenas en SQL usan comillas simples rectas. Una comilla simple tipografica en una consulta provoca un error de sintaxis o, en algunos motores, una vulnerabilidad de inyeccion.
Como encontrar y corregir comillas tipograficas en tu codigo
Con el limpiador tipografico online
La forma mas rapida es pegar el texto en el Limpiador tipografico de esta pagina. Convierte en un clic todas las comillas curvadas, puntos suspensivos tipograficos y rayas a sus equivalentes ASCII.
Con busqueda por expresion regular en el editor de codigo
En VS Code, activa la busqueda con Ctrl+H y marca la opcion de expresion regular. El patron [''""‛‟] detecta las variantes mas comunes de comillas tipograficas. Reemplaza por ' o " segun corresponda.
En Vim: :%s/[''""]/"/g para comillas dobles, :%s/['']/'/g para simples.
Desde la terminal (Linux/Mac)
sed -i "s/\xe2\x80\x98/'/g; s/\xe2\x80\x99/'/g; s/\xe2\x80\x9c/\"/g; s/\xe2\x80\x9d/\"/g" archivo.txt
El problema del apostrofo en espanol
El espanol usa el apostrofo en contracciones coloquiales y en nombres propios de origen frances o catalan (l'Hospitalet, c'est). El apostrofo tipografico U+2019 parece identico al recto U+0027 en pantalla, pero son caracteres distintos. Si copias texto con apostrofos tipograficos en codigo, el resultado sera un error.
La regla es simple: en codigo, usa siempre U+0027. En texto editado con procesador de texto en espanol, revisa siempre antes de copiar al entorno de desarrollo.
El mismo problema con los puntos suspensivos
Los puntos suspensivos tipograficos ... (U+2026) son un unico caracter que parece tres puntos pero no es equivalente en codigo. Si los copias en una cadena JSON o en un argumento de shell, el comportamiento puede ser impredecible segun el sistema.