Rumah > hujung hadapan web > tutorial js > 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
Lepaskan: 2016-05-16 16:42:51
asal
2502 orang telah melayarinya

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>
Salin selepas log masuk

Cetakan halaman:

%uFFFD%u0171%uFFFD%u05AE%uFFFD%uFFFD
Salin selepas log masuk

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);
Salin selepas log masuk

Watak bercelaru muncul: �ű�֮��

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

var teststr=escape("脚本之家");
Salin selepas log masuk

menjadi

var teststr=escape("&#369;&#1454;");
Salin selepas log masuk

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
Salin selepas log masuk


Pada masa ini, gunakan unescape untuk menyahkod:

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

Kami mendapat aksara Cina asal yang betul: Rumah Skrip!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan