Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

220
Vistas
Juego de caracteres de cadena encubierta de Node js

Necesito convertir el valor de mi entrada con el valor del juego de caracteres seleccionado. [![Para ver lo que quiero][1]][1] [1]: https://i.stack.imgur.com/vh07r.png Mi código:

 const express = require('express'); const app = express(); const path = require('path'); var bodyParser = require('body-parser'); var iconv = require('iconv-lite'); var urlencodedParser = bodyParser.urlencoded({ extended: false }); app.get('/', function(req, res) { res.sendFile(path.join(__dirname, '/index.html')); }); app.post('/',urlencodedParser, function(req, res) { let input = req.body.input; let select = req.body.select; let utf8 = iconv.encode(input, 'utf-8'); let iso = iconv.encode(input, 'iso-8859-1'); let win = iconv.encode(input, 'win1252'); console.log(utf8.toString()); console.log(iso.toString()); console.log(win.toString()); res.sendFile(path.join(__dirname, '/index.html')); res.send(`Input string <textarea character-set=>${input}</textarea><br> ISO <textarea character-set="ISO-8859-1"></textarea><br> UTF-8 <textarea character-set="UTF-8"></textarea><br> Win-1252 <textarea character-set="windows-1252"></textarea><br> `); }); app.listen(3000);
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Presumiblemente, desea utilizar el contenido del archivo ubicado en path.join(__dirname, '/index.html') como una plantilla en la que puede inyectar el resultado de la transformación de codificación.

Si este es el caso, una solución simple sería:

 const { format } = require('util'); const sourceFilepath = path.join(__dirname, '/index.html'); // Load the html source you wish to return as the result. // Note that if the file cannot be read, this will throw an // exception on server start. const content = fs.readSync(sourceFilepath); // The content of content should include a textarea tag in the // following format: // `<textarea character-set="%s">%s</textarea>';` // where the selected encoding will replace the first `%s` and // the resulting encoded input text will replace the second. // Helper to report errors back to the caller const reportError = (res, message) => { res.status(500).send(message); res.end(); }; // Helper to ensure we have a string to encode. const isNonEmptyString = (s) => (typeof s === 'string') && s.length; app.post('/', urlencodedParser, function(req, res) { // ensure we have something to encode // (trimming leading and trailing spaces.) const src = req.body.input.trim(); if (!isNonEmptyString(src)) { reportError(res, 'requires some input to encode'); return; } // set the required encoding, using utf-8 as a fall-back. const encoding = req.body.select || 'UTF-8'; // encode the src using the encoding // in the case of an encoding error, return a reasonable error message // to the caller. let result; try { result = iconv.encode(src, encoding); } catch (err) { reportError(`Error: failed to convert src using encoding "${encoding}": ${err}`); return; } // send back the result after replacing the printf `%s` markers with the // selected encoding and the transformed src . res.send(format(content, encoding, result)); res.end(); });

Tenga en cuenta que esto es solo el comienzo de una solución completa, pero debería haber suficiente aquí para comenzar.

Hay muchas formas de realizar la transformación requerida y sería más eficiente transmitir el resultado a la persona que llama, pero esta es la solución más simple.

Dos notas de estilo:

  1. Javascript proporciona tres medios para definir variables: var , let y const y es importante saber la razón por la que cada uno tiene su uso específico. Usar let solo tiene la posibilidad de inyectar errores difíciles de depurar en su código.
  2. Para mayor confiabilidad, siempre ajuste las operaciones que tengan la posibilidad de generar excepciones en try/catch y siempre maneje las excepciones detectadas de manera adecuada. Sin hacer esto, corre el riesgo de no devolver nada a la persona que llama, lo que también dificulta la depuración de su código.
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda