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

293
Visualizações
Javascript hexadecimal a ASCII con símbolos latinos extendidos

Obtengo un valor hexadecimal de mi cadena que se ve así:

 String has letters with diacritics: č,š,ř, ...

El valor hexadecimal de esta cadena es:

 0053007400720069006E006700200068006100730020006C0065007400740065007200730020007700690074006800200064006900610063007200690074006900630073003A0020010D002C00200161002C00200159002C0020002E002E002E

El problema es que cuando trato de volver a convertir este valor a ascii, convierte mal el č, š, ř, .. y devuelve el símbolo de una pequeña caja con un signo de interrogación en lugar de estos símbolos.

Mi código para convertir hexadecimal a ascii:

 function convertHexadecimal(hexx){ let index = hexx.indexOf("~"); let strInfo = hexx.substring(0, index+1); let strMessage = hexx.substring(index+1); var hex = strMessage.toString(); var str = ''; for (var i = 0; i < hex.length; i += 2){ str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); } console.log("Zpráva: " + str); var strFinal = strInfo + str; return strFinal; }

puede alguien ayudarme con esto?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Primero una solución de ejemplo:

 let demoHex = `0053007400720069006E006700200068006100730020006C0065007400740065007200730020007700690074006800200064006900610063007200690074006900630073003A0020010D002C00200161002C00200159002C0020002E002E002E`; function hexToString(hex) { let str=""; for( var i = 0; i < hex.length; i +=4) { str += String.fromCharCode( Number("0x" + hex.substr(i,4))); } return str; } console.log("Decoded string: %s", hexToString(demoHex) );

Qué está haciendo:

Trata los caracteres hexadecimales como una secuencia de 4 dígitos hexadecimales que proporcionan el código de carácter UTF-16 de un carácter.

  • Obtiene cada conjunto de 4 dígitos en un bucle usando String.prototype.substr . Tenga en cuenta que MDN dice que .substr está en desuso, pero esto no se menciona en el estándar ECMASript: reescríbalo para usar substring o cualquier otra cosa que desee.

  • Los caracteres hexadecimales tienen el prefijo "0x" para convertirlos en una representación numérica válida en JavaScript y convertirlos en un objeto numérico mediante Number . Luego, el número se convierte en una cadena de caracteres mediante el método estático String.fromCharCode .

Supuse el formato de la cadena hexadecimal mirándola, lo que significa que una rutina de codificación de propósito general para codificar caracteres UTF16 (no puntos de código) en hexadecimal podría verse así:

 const hexEncodeUTF16 = str=>str.split('') .map( char => char.charCodeAt(0).toString(16).padStart(4,'0')) .join(''); console.log( hexEncodeUTF16( "String has letters with diacritics: č, š, ř, ..."));

Espero que estos ejemplos muestren lo que se necesita hacer: hay varias formas de implementarlo en el código.

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