Herramientas de desarrollo · Convertidores de sintaxis
Estándar faltante de CSV: qué cubre el RFC 4180 y qué deja abierto
· Antecedentes
csv json formatos de datos
CSV es anterior a cualquier especificación, y el único RFC que lo describe es informativo y deliberadamente limitado. Esta publicación explica qué define RFC 4180, sobre qué no dice nada y por qué convertir CSV es, por lo tanto, siempre una negociación.
¿De quién es CSV correcto? — dos exportaciones de la misma tabla, una con punto y coma y otra con comas, ambas llamadas CSV
ToolAcre puede emitir resultados delimitados por comas, punto y coma o tabulaciones desde JSON. No lee dos exportaciones CSV competidoras ni declara que ninguna de ellas es correcta. CSV aquí es de solo escritura, por lo que la elección del delimitador es una opción de salida explícita en lugar de un algoritmo de detección.
Esa distinción evita un error fáctico común. Una interfaz que puede escribir punto y coma no ha demostrado que pueda identificar punto y coma en un archivo desconocido, manejar decimales locales o interpretar encabezados. Se trata de responsabilidades de aportación separadas que se excluyen deliberadamente.
Dos opciones de delimitador son opciones de salida, no evidencia de que este panel lea cualquiera de los archivos
El repositorio no contiene ninguna fuente del historial inicial de hojas de cálculo o bases de datos, por lo que el artículo no inventa una cronología. Comienza con el escritor actual y sus pruebas: registros, campos, delimitadores, terminación CRLF y escape de comillas.
El contexto histórico se puede agregar más adelante con las fuentes revisadas. La implementación de un convertidor es evidencia de lo que el producto escribe hoy, no de cuándo apareció por primera vez una convención o por qué los proveedores divergieron.
CSV historial antes del RFC 4180 está fuera del repositorio de evidencia
Un campo que contiene el delimitador, la comilla doble, el retorno de carro o el avance de línea se incluye entre comillas dobles y cada comilla incrustada se duplica. También se citan los espacios en blanco iniciales o finales para evitar el recorte común de las hojas de cálculo. Los registros terminan con CRLF y el archivo finaliza.
Estos comportamientos siguen reglas de estilo RFC 4180 probadas en el repositorio. El artículo evita afirmar el cumplimiento universal porque el escritor también admite delimitadores alternativos y agrega manejo de seguridad fuera de la gramática estricta.
El autor utiliza citas al estilo RFC 4180 y CRLF sin afirmar el cumplimiento total del estándar. Las celdas
CSV no conservan los tipos JSON. Tanto las cadenas nulas como las vacías se convierten en celdas vacías, mientras que los valores booleanos y los números se convierten en representaciones de texto. El contenido UTF-8 se transfiere y se puede anteponer una lista de materiales opcional para los consumidores que la necesiten.
La interpretación local no está incorporada. Un delimitador de punto y coma puede coexistir con comas decimales, pero el escritor no reformatea los números por configuración regional ni codifica un tipo de fecha. La aplicación receptora aún decide cómo interpretar cada campo.
Los límites de codificación, tipo y ubicación permanecen explícitos en este escrito.
Las variaciones implementadas son coma, punto y coma y tabulación, además de una lista de materiales opcional. El texto similar a una fórmula que comienza con `=`, `+`, `-`, `@`, tabulación o retorno de carro tiene el prefijo predeterminado de un apóstrofe, por lo que las hojas de cálculo lo tratan como texto. Los usuarios pueden desactivar esa protección y recibir una advertencia.
No hay ningún modo `sep=` de pista o barra invertida de escape en este escritor. Mencionarlas como opciones enviadas sería falso. Las comillas incrustadas utilizan la duplicación, exactamente como afirman las pruebas.
Las variaciones observadas en las hojas de cálculo se limitan a las opciones y protecciones implementadas aquí.
Cada suposición en esta ruta comienza a partir del JSON analizado: qué valor proporciona filas, cómo el anidamiento se aplana en columnas de puntos y qué claves se convierten en encabezados. No se hace ninguna suposición sobre un dialecto CSV entrante porque el CSV entrante se rechaza.
Esta corrección invierte la dirección solicitada del libro. Un flujo de trabajo CSV a JSON debe elegir tipos de delimitador, cita, encabezado y celda en otra herramienta. El error de ToolAcre explica esa negativa en lugar de adivinar en silencio.
Los supuestos de conversión se aplican a JSON-to-CSV solo porque se rechaza la entrada CSV
La reparación de CSV con formato incorrecto está fuera del alcance. Las comillas rotas, las codificaciones mixtas y los delimitadores accidentales necesitan el limpiador CSV u otro analizador con diagnóstico explícito. El convertidor de sintaxis recibe texto estricto JSON, no dañado CSV.
La salida aún puede no ser adecuada para un destino cuando un árbol anidado crea columnas de puntos ambiguas o excede las 2,000 columnas. Las advertencias y las mayúsculas exponen esos fallos en la forma de la tabla antes de la descarga.
Conclusión: CSV es una convención, no un formato, y cómo el panel de convertidores de sintaxis convierte un archivo bien formado en JSON se puede inspeccionar
Trate CSV como una convención cuyas opciones deben ser visibles. ToolAcre documenta sus opciones de salida y rechaza lo contrario. Esto es más confiable que usar un botón para dos trabajos fundamentalmente diferentes.
Inspecciona el delimitador, las cotizaciones, CRLF, BOM y la fórmula que se escapa del sistema receptor. Si es necesario analizar la entrada, utilice una herramienta que pregunte en lugar de transferir las convenciones del escritor a un archivo desconocido.
Una verificación de aceptación práctica abre el archivo generado en el consumidor previsto y también examina los bytes o el texto sin procesar. La visión del consumidor detecta problemas de visualización e importación; la vista sin formato confirma delimitador, comillas dobles, CRLF y una lista de materiales opcional sin reinterpretación de la hoja de cálculo. Pruebe cadenas tipo fórmula como texto inerte y un número negativo como número. Esas comprobaciones emparejadas verifican el contrato real del escritor sin afirmar que cada programa implemente CSV convenciones de manera idéntica.