Por que las comillas tipograficas rompen su codigo (y como solucionarlo)

Las comillas curvadas se ven mejor que las rectas, pero corrompen silenciosamente el codigo, los archivos de configuracion y los comandos CLI. Aprenda a detectarlas y eliminarlas.

El saboteador silencioso

Copia un fragmento de codigo de un articulo de blog, lo pega en su terminal y obtiene un error crипtico. El codigo parece correcto. Tras diez minutos se da cuenta: las comillas estan ligeramente curvadas. Esas son comillas tipograficas (tambien llamadas comillas curvadas), y rompen el codigo.

Esta es una de las fuentes mas comunes de errores invisibles para los desarrolladores, especialmente al copiar de:

  • Procesadores de texto (Microsoft Word, Google Docs)
  • Editores CMS (WordPress, Medium, Notion)
  • Documentos PDF
  • Algunos clientes de correo
  • Texto generado por IA formateado para lectura en lugar de ejecucion

Comillas rectas vs comillas tipograficas

Comillas rectas (lo que espera el codigo):

  • ', U+0027, apostrofo ASCII / comilla simple
  • ", U+0022, comilla doble ASCII

Comillas tipograficas (lo que insertan los procesadores de texto):

  • ', U+2018, comilla simple izquierda
  • ', U+2019, comilla simple derecha / apostrofo
  • ", U+201C, comilla doble izquierda
  • ", U+201D, comilla doble derecha

Son caracteres Unicode completamente diferentes. Ningun lenguaje de programacion, shell o formato de configuracion los trata como equivalentes a sus contrapartes ASCII.

Que se rompe

Comandos de shell, bash, zsh, PowerShell usan comillas ASCII para delimitar cadenas. Las comillas tipograficas causan un error de sintaxis.

JSON, JSON requiere U+0022 (") para delimitadores de cadenas y claves. Las comillas dobles tipograficas producen un error de analisis en cualquier analizador JSON.

Python, JavaScript, PHP, los literales de cadena deben usar caracteres de comilla ASCII. Las comillas tipograficas causan un SyntaxError.

Archivos de configuracion, YAML, TOML, archivos .env, configuracion SSH, todos esperan ASCII.

De donde vienen las comillas tipograficas

La mayoria de los procesadores de texto aplican "autocorrección" que reemplaza las comillas rectas por curvadas al escribir. Cuando copia texto de estas fuentes y lo pega en un editor de codigo, las comillas tipograficas vienen con el texto.

Como encontrarlas y corregirlas

En un editor de codigo

La mayoria de los editores pueden buscar por regex. El patron [''""‛‟] coincide con variantes comunes de comillas tipograficas.

Con una herramienta de limpieza de texto

El Limpiador tipografico de este sitio convierte todas las comillas curvadas, puntos suspensivos, rayas y otros caracteres tipograficos de vuelta a sus equivalentes ASCII con un clic.

En el terminal

sed -i "s/\xe2\x80\x98/'/g; s/\xe2\x80\x99/'/g; s/\xe2\x80\x9c/\"/g; s/\xe2\x80\x9d/\"/g" archivo.txt

Prevenir la autocorreccion en el origen

En Word: Archivo, Opciones, Revision, Opciones de Autocorreccion, Autoformato mientras escribe, desmarcar "Reemplazar comillas rectas con tipograficas".

En Google Docs: Herramientas, Preferencias, desmarcar "Usar comillas tipograficas".

El problema de los puntos suspensivos

El mismo problema se aplica al caracter de puntos suspensivos ... (U+2026), que es un unico caracter que parece ... (tres puntos) pero no es equivalente en codigo.

Resumen

Las comillas tipograficas estan disenadas para la lectura de texto, no para escribir codigo. Son caracteres Unicode diferentes de las comillas ASCII y romperan cualquier codigo, configuracion o comando CLI que las reciba. Trabaje siempre en un editor de texto plano (VS Code, Sublime, Vim) en lugar de un procesador de texto al escribir codigo.