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

465
Visualizações
Obtención del contenido del archivo PDF: "Caracteres UTF-8 con formato incorrecto, posiblemente codificados incorrectamente"

Estoy trabajando en una solución donde:

  • una aplicación de una sola página vue está leyendo desde un punto final API basado en PHP (Laravel);
  • un punto final de la API de PHP solicita un servicio externo que, a su vez, utiliza la aplicación express de nodo/titiritero para imprimir una página;

La aplicación Node.js devuelve el archivo de la siguiente manera:

 // create pdf, save it locally .... fs.readFile(pdf, function (err,data){ response.set({ 'content-type': 'application/pdf; charset=utf-8' }); response.send(data); });

El punto final de PHP obtiene binario usando curl:

 $request['url'] = 'https://www.test.com'; $payload = json_encode($request); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,'http://service.url'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type:application/json; charset=UTF-8']); curl_setopt($ch, CURLOPT_ENCODING ,'UTF-8'); $data = curl_exec($ch); curl_close($ch); return $this->json(['data' => $data]);

La aplicación vue obtiene el archivo de la siguiente manera:

 async getPdf({ requestId }) { const result = await Api.get(`/pdf`, { timeout: 30000, }); return result.data; }, .... .... const blob = new Blob([response], { type: 'application/pdf' }); const link = document.createElement('a'); link.href = window.URL.createObjectURL(blob); link.download = 'test.pdf'; link.click();

El problema ocurre cuando intento obtener el búfer del archivo. El punto final de PHP me da el error " Malformed UTF-8 characters, possibly incorrectly encoded ".

Traté de resolver esto agregando $data = mb_convert_encoding($data, 'UTF-8', 'UTF-8'); para rizar la respuesta, pero esto resultó en un PDF vacío, supongo que este es el problema de codificación. El archivo PDF está perfectamente bien, ya que primero se guarda localmente y luego lo procesa la aplicación de nodo.

¿Alguna idea sobre cómo resolver el problema de codificación? ¿Hay una mejor manera de transferir el búfer de archivos?

over 4 years ago · Santiago Trujillo
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