Nuestro software de línea de negocio permite al usuario guardar ciertos datos como CSV . Dado que hay muchos formatos diferentes (todos llamados "CSV") en uso en la naturaleza, estamos tratando de decidir cómo debería ser el "formato predeterminado".
Con respecto a los separadores de línea / campo y al escape, hay un estándar que podemos usar: RFC 4180 .
Con respecto a la codificación de texto, UTF-8 parece haber surgido en la última década como el "formato de archivo de texto predeterminado", por lo que lo utilizaremos.
La única pregunta que queda abierta es: ¿Deberíamos agregar una lista de materiales al comienzo o no? He leído múltiples opiniones y pros / contras sobre el uso de listas de materiales en general, pero ¿hay alguna recomendación "oficial" o al menos algún tipo de consenso de la comunidad sobre el uso de listas de materiales en los archivos CSV?
fuente
Respuestas:
No para UTF-8 , pero vea las diversas advertencias en los comentarios.
Es innecesario (UTF-8 no tiene orden de bytes) a diferencia de UTF-16/32 y no se recomienda en el estándar Unicode . También es bastante raro ver UTF-8 con BOM "en la naturaleza", por lo que, a menos que tenga una razón válida (por ejemplo, como se comentó, trabajará con un software que espera la BOM), recomendaría el enfoque sin BOM .
Wikipedia menciona principalmente software de Microsoft que fuerza y espera una lista de materiales, pero a menos que esté trabajando con ellos, no la use.
fuente
#!
no es válida. En el mejor de los casos, una lista de materiales en UTF-8 está "permitida, cuando ningún requisito específico de formato / aplicación lo impide", no "permitida", y como tal no debe usarse. Los estándares son realmente claros acerca de lo que NO DEBE.Todavía no existe una convención generalizada AFAIK, aunque ciertamente UTF-8 ahora es generalmente aceptado.
La lista de materiales es un artefacto horrible:
Es invisible (espacio de ancho cero).
Algún software puede romperse en el nombre de la primera columna que no solo contiene letras, sino esa extraña lista de materiales al frente.
La línea de encabezado podría copiarse para las líneas de valor que corrompen el primer valor.
Algunos programas de Windows solo lo necesitan para distinguir entre una de las codificaciones ANSI utilizadas por esa máquina local de Windows y UTF-8. Bloc de notas, Excel.
Entonces, lo triste es que uno debe apoyar la lista de materiales. Quizás opcional.
Utilice un esquema de nomenclatura para los archivos (...- utf8.txt, ...- utf8bom.txt).
En muchos casos podríamos usar HTML como alternativa de exportación. Esto permite configurar la codificación en el archivo. Una característica adicional es el color de fondo / primer plano de filas y celdas. Lo que aumenta la calidad de la exportación.
fuente
-utf8-windows.csv
es mejor. Casi todo el mundo sabe qué es Windows, en el contexto de las computadoras, pero muchos menos usuarios saben qué es una marca de orden de bytes.tschüß
basura, mientras quetschüß
deberían haberse escrito. En StackOverflow, muchos errores de TI son sobre codificaciones. Los usuarios finales también experimentarán problemas.