En el proyecto de hoy, encontré la situación en la que necesitaba codificar caracteres chinos con JavaScript y luego decodificarlos con unescape. Al probar el segmento de código, tenía código confuso.
La situación específica es la siguiente:
Primero, use EditPlus para abrir la página de prueba test.html y editar el siguiente código HTML:
< xmlns = "http://www.w3.org/1999/xhtml"> <toad> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> <title> test unescape test </title> </head> <body> <script> var> var> testStr = escoke ("wulin.com"); document.write (teststr); </script> </body> </html>Impresión de la página:
%Ufffd%U0171%UFFFD%U05AE%UFFFD%UFFFD%UFFFD
En este momento, podemos ver que la situación es incorrecta. ¡Ya está mal en términos del número de caracteres correspondientes a los caracteres chinos!
Luego use el siguiente código para probar los caracteres chinos decodificados por unescape:
var relstr = unescape ("%ufffd%u0171%ufffd%u05ae%ufffd%uffd"); document.write (relstr);Aparece el código de basura: �ű ֮��
Solución:
¡Abrí el archivo test.html con DreamWeaver y encontré el problema!
La parte original
var testStr = Escape ("wulin.com");Convertirse
var testStr = Escape ("ű֮");¡Se puede ver que es causada por la codificación inicial del editor!
Cambie los caracteres chinos en Dreamweaver, Rerun Test.html y obtenga la codificación correspondiente:
%U811A%U672C%U4E4B%U5BB6
Luego use unescape para decodificar:
var relstr = unescape ("%u811a%u672c%u4e4b%u5bb6"); document.write (relstr);Luego obtuve el personaje chino correcto original: ¡wulin.com!