Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

171
Visualizações
Javascript encodeURI no funciona bien con csv

Estoy tratando de generar un CSV corto con el siguiente código:

Fuente

 const csv_content = `"Hello"þ"World"þ"#"þ"123"`; const href = 'data:attachment/csv;charset=utf-8,' + encodeURI(csv_content); console.log(href);

Copio/paso el valor href en mi navegador y lo descargo.

valor de h ref

 data:attachment/csv;charset=utf-8,%22Hello%22%C3%BE%22World%22%C3%BE%22#%22%C3%BE%22123%22

Lo abro en Excel pero no puedo mostrar ningún carácter después de # char y el # mismo. Si alguien puede explicarme por qué encodeURI y # me devuelven este problema, ¡sería maravilloso!

SOLUCIÓN

El comentario de evolutionxbox resuelve este problema, necesita usar encodeURIComponent en lugar encodeURI

 // encodes characters such as ?,=,/,&,: console.log(`?x=${encodeURIComponent('test?')}`); // expected output: "?x=test%3F"
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Su problema en realidad toca un tema importante, y eso es lo que se debe pasar en una URL frente a lo que se debe pasar en el cuerpo.

Cuando llegue a objetos complejos, como un archivo csv, sería mejor usar el cuerpo para contener esta información, ya que es mucho menos exigente con los caracteres.

Otro motivo es que la URL es información abierta y desprotegida. Si alguna vez creó un archivo csv que contenía datos confidenciales, cualquier persona en el mundo puede verlo. Los datos en el cuerpo (suponiendo que esté usando https) están encriptados y no están abiertos a todos los espectadores.


También es importante recordar los usos correctos de GET , PUT , PATCH , DELETE y POST . Cuando trabajo con el envío de un archivo, sería difícil encontrar una buena razón para usar GET como solicitante (si el solicitante es el que envía el archivo csv), el único de los anteriores donde rompe la convención para enviar datos en el cuerpo de la solicitud. Sin embargo, está perfectamente bien tener datos en un cuerpo de respuesta GET .

about 4 years ago · Juan Pablo Isaza Relatório

0

SOLUCIÓN

El comentario de evolutionxbox resuelve este problema, necesita usar encodeURIComponent en lugar encodeURI

 // encodes characters such as ?,=,/,&,: console.log(`?x=${encodeURIComponent('test?')}`); // expected output: "?x=test%3F"
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda