Vi que algunos bytes hexadecimales se convierten fácilmente en cadenas escapadas, por ejemplo, 0x54,0x65, etc., pero cuando las cadenas alfabéticas vienen como 0xAA, 0xAF, etc., después de la conversión, se agregan caracteres adicionales. Entonces, ¿cómo puedo configurar estos caracteres para que no generen estos caracteres adicionales? un pequeño código-----------------
let uri = "ª¯°"; //0xAA, 0xAF, 0B0 let encoded = encodeURI(uri); let decoded = decodeURI(encoded); document.getElementById("demo").innerHTML = "Encoded URI:<br>" + encoded + "<br><br>" + "Decoded URI:<br>" + decoded; <!DOCTYPE html> <html> <body> <h1>JavaScript Global Methods</h1> <h2>The decodeURI() Method</h2> <p id="demo"></p> </body> </html>PRODUCCIÓN-------
Encoded URI: %C2%AA%C2%AF%C2%B0 Decoded URI: ª¯°como puede ver, se generan algunos caracteres adicionales como 'C2', ¿cómo puedo generar estas cadenas sin C2?
La función encodeURI está codificando su cadena a UTF-8
Según la página de wikipedia UTF-8 :
Los primeros 128 caracteres (US-ASCII) necesitan un byte. Los siguientes 1920 caracteres necesitan dos bytes para codificarse.
La codificación de caracteres individuales de "ª¯°" dará como resultado un patrón similar ya que no existen en los primeros 128 caracteres de la tabla US-ASCII.
También existe una respuesta similar en esta publicación: ¿Qué es "= C2 = A0" en el texto imprimible entre comillas codificado en MIME?
console.log("ª " + encodeURI("ª")); console.log("¯ " + encodeURI("¯")); console.log("° " + encodeURI("°"));