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

879
Views
nodeJS: convierta response.body en utf-8 (desde la codificación de Windows-1251)

Estoy tratando de convertir un cuerpo HTML codificado en windows-1251 en utf-8 pero todavía tengo caracteres desordenados en html .

Básicamente son alfabeto ruso, pero no puedo hacer que se muestren correctamente. me sale ??????? ?? ???

 const GOT = require('got') // https://www.npmjs.com/package/got const WIN1251 = require('windows-1251') // https://www.npmjs.com/package/windows-1251 async function query() { var body = Buffer.from(await GOT('https://example.net/', {resolveBodyOnly: true}), 'binary') var html = WIN1251.decode(body.toString('utf8')) console.log(html) } query()

ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Estás haciendo un montón de codificación tonta de un lado a otro aquí. Y los 'atrás' ni siquiera coinciden con los 'adelante'.

Primero, usa la biblioteca got para descargar una página web; de forma predeterminada, got decodificará diligentemente los textos de respuesta como UTF-8 . Rellena la cadena Unicode devuelta en un Buffer con la codificación binary , que desecha el octeto superior de cada unidad de código UTF-16 de la cadena Unicode. Luego usa .toString('utf-8') que interpreta esta cadena mutilada como UTF-8 (en realidad, lo más probable es que no sea UTF-8 válido en absoluto). Luego, pasa la cadena 'UTF-8' a windows-1251 , para decodificarla como una cadena de 'página de códigos 1251'. Nada bueno puede salir de toda esta confusión.

El paquete windows-1251 que desea usar toma las llamadas cadenas 'binarias' (pseudo-Latin-1) como entrada. Lo que debe hacer en su lugar es tomar la respuesta binaria, interpretarla como una cadena Latin-1/'binary' y luego pasarla a la biblioteca de windows-1251 para su decodificación.

En otras palabras, usa esto:

 const GOT = require('got'); const WIN1251 = require('windows-1251'); async function query() { const body = await GOT('https://example.net/', { resolveBodyOnly: true, responseType: 'buffer' }); const html = WIN1251.decode(body.toString('binary')) console.log(html) } query()
over 4 years ago · Santiago Trujillo Report
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!