Rumah  >  Artikel  >  hujung hadapan web  >  Penyelesaian kepada aksara bercelaru dalam pengekodan melarikan diri dan nyahkod kemahiran aksara Cina_javascript

Penyelesaian kepada aksara bercelaru dalam pengekodan melarikan diri dan nyahkod kemahiran aksara Cina_javascript

WBOY
WBOYasal
2016-05-16 16:42:512435semak imbas

Dalam projek hari ini, kami menghadapi situasi di mana kami perlu menggunakan pelarian JavaScript untuk mengekod aksara Cina dan kemudian menggunakan unescape untuk menyahkodnya Apabila menguji segmen kod, aksara bercelaru muncul.
Situasi khusus adalah seperti berikut:
Mula-mula, gunakan EditPlus untuk membuka halaman ujian test.html dan edit kod html berikut:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//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>unescape测试</title>
</head>
<body>
<script>
var teststr=escape("脚本之家");
document.write(teststr);
</script>
</body>
</html>

Cetakan halaman:

%uFFFD%u0171%uFFFD%u05AE%uFFFD%uFFFD

Anda boleh melihat bahawa ada sesuatu yang tidak kena pada ketika ini Hanya daripada bilangan aksara yang sepadan dengan aksara Cina, ia sudah salah!
Kemudian gunakan kod berikut untuk menguji aksara Cina yang dinyahkod oleh unescape:

var relstr=unescape("%uFFFD%u0171%uFFFD%u05AE%uFFFD%uFFFD");
document.write(relstr);

Watak bercelaru muncul: �ű�֮��

Penyelesaian:
Buka fail test.html dengan Dreamweaver dan temui masalahnya!
Perenggan asal

var teststr=escape("脚本之家");

menjadi

var teststr=escape("&#369;&#1454;");

Ia boleh dilihat bahawa ia disebabkan oleh pengekodan awal editor!
Tukar aksara Cina kembali dalam Dreamweaver, jalankan semula test.html dan dapatkan pengekodan yang sepadan:

%u811A%u672C%u4E4B%u5BB6


Pada masa ini, gunakan unescape untuk menyahkod:

var relstr=unescape("%u811A%u672C%u4E4B%u5BB6");
document.write(relstr);

Kami mendapat aksara Cina asal yang betul: Rumah Skrip!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn