Tengo un archivo csv (separado por punto y coma, así que uso d3.dsv para leerlo)
d3.dsv(";", "Project.csv", function(d) { console.log(d) });Pero obtengo "-" donde están los acentos.
Sé que el archivo está codificado como "latin_1", así que probé esto:
dsvReader = d3.dsv(";", "iso-8859-1"); dsvReader("Project.csv", function(d) { console.log(d) });Pero me sale los siguientes errores:
> net::ERR_FILE_NOT_FOUND > Uncaught (in promise) TypeError: Failed to fetchSu primer fragmento: la función d3-fetch d3.dsv usa response.text() en el resultado de fetch , que solo maneja UTF-8.
Su segundo fragmento: intenta obtener el archivo llamado iso-8859-1 , que presumiblemente no existe. No hay ningún argumento en d3.dsv que acepte la codificación.
Una solución es asegurarse de que el servidor tenga un archivo UTF-8 y no un archivo Latin-1. Esta es la solución más simple: en 2022, hay muy pocas razones legítimas para no usar Unicode.
Otra es usar fetch yourself, o usar d3.buffer o d3.blob , luego convertir la respuesta a UTF-8 usted mismo, como se describe en Obtención de datos que no son utf8 con XMLHttpRequest usando TextDecoder (en búfer) o .readAsText (en blob) , y finalmente use d3.dsvFormat(";").parse en los datos ahora correctos.