Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

460
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!