Dalam proyek hari ini, saya menemukan situasi di mana saya perlu menyandikan karakter Cina dengan JavaScript dan kemudian memecahkan kode dengan Unescape. Saat menguji segmen kode, saya memiliki kode yang kacau.
Situasi spesifiknya adalah sebagai berikut:
Pertama, gunakan EditPlus untuk membuka halaman tes test.html dan edit kode HTML berikut:
<! Doctype html public "-// w3c // dtd xhtml 1.0 transisi // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"><html xmlns = "http://www.w3.org/1999/xhtml"> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/<title> uji unescape </title> </head> <body> <body> var var> <body> var var> <title> unescape </title> </head> <body> <body> teststr = Escape ("wulin.com"); document.write (testStr); </script> </body> </html>Cetak halaman:
%ufffd%u0171%ufffd%u05ae%ufffd%ufffd%ufffd
Pada saat ini, kita dapat melihat bahwa situasinya salah. Sudah salah dalam hal jumlah karakter yang sesuai dengan karakter Cina!
Kemudian gunakan kode berikut untuk menguji karakter Cina yang diterjemahkan oleh Unescape:
var relstr = unescape ("%ufffd%u0171%ufffd%u05ae%ufffd%uffd"); document.write (relstr);Kode sampah muncul: �ű� ֮��
Larutan:
Saya membuka file test.html dengan Dreamweaver dan menemukan masalahnya!
Bagian aslinya
var teststr = Escape ("wulin.com");Menjadi
var teststr = Escape ("ű֮");Dapat dilihat bahwa itu disebabkan oleh pengkodean awal editor!
Ubah karakter Cina di Dreamweaver, rerun test.html, dan dapatkan penyandian yang sesuai:
%u811a%u672c%u4e4b%u5bb6
Kemudian gunakan Unescape untuk memecahkan kode:
var relstr = unescape ("%u811a%u672c%u4e4b%u5bb6"); document.write (relstr);Lalu saya mendapatkan karakter Cina yang benar yang benar: wulin.com!