Comillas tipograficas que rompen el codigo: el problema especifico del espanol

Word, Google Docs y el teclado espanol insertan comillas curvadas que corrompen silenciosamente JSON, YAML y comandos de terminal. Aprende a detectarlas, eliminarlas y evitar el problema.

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.

-> Limpiador tipografico

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:

SistemaAutocorreccion activa por defectoComo se activa
Word (Windows/Mac)SiOpciones > Autocorreccion > Autoformato
Google DocsSiHerramientas > Preferencias
Pages (Mac)SiPages > Preferencias > Autocorreccion
LibreOfficeSiHerramientas > Opciones de autocorreccion

-> Limpiador tipografico

Como desactivar las comillas inteligentes en Word y Google Docs en espanol

En Microsoft Word (Windows y Mac)

  1. Ve a Archivo > Opciones > Revision
  2. Haz clic en Opciones de Autocorreccion...
  3. Selecciona la pestana Autoformato mientras escribe
  4. Desmarca la casilla "Reemplazar comillas rectas con tipograficas"
  5. 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

  1. Ve al menu Herramientas > Preferencias
  2. Desmarca la casilla "Usar comillas tipograficas"
  3. Haz clic en Aceptar

La configuracion se guarda en tu cuenta de Google y se aplica a todos los documentos nuevos.

-> Limpiador tipografico

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.

-> Limpiador tipografico

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.

-> Limpiador tipografico