Heim > Web-Frontend > js-Tutorial > Lösung für verstümmelte Zeichen bei der Escape-Kodierung und Unescape-Dekodierung chinesischer Zeichen_Javascript-Kenntnisse

Lösung für verstümmelte Zeichen bei der Escape-Kodierung und Unescape-Dekodierung chinesischer Zeichen_Javascript-Kenntnisse

WBOY
Freigeben: 2016-05-16 16:42:51
Original
2503 Leute haben es durchsucht

Im heutigen Projekt sind wir auf eine Situation gestoßen, in der wir JavaScripts Escape verwenden mussten, um chinesische Zeichen zu codieren, und dann Unescape verwenden mussten, um sie zu decodieren. Beim Testen des Codesegments erschienen verstümmelte Zeichen.
Die konkrete Situation ist wie folgt:
Öffnen Sie zunächst mit EditPlus die Testseite test.html und bearbeiten Sie den folgenden HTML-Code:

<!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>
Nach dem Login kopieren

Seitenausdruck:

%uFFFD%u0171%uFFFD%u05AE%uFFFD%uFFFD
Nach dem Login kopieren

Sie können an dieser Stelle erkennen, dass etwas nicht stimmt. Allein an der Anzahl der Zeichen, die den chinesischen Schriftzeichen entsprechen, ist es bereits falsch!
Verwenden Sie dann den folgenden Code, um die von unescape dekodierten chinesischen Zeichen zu testen:

var relstr=unescape("%uFFFD%u0171%uFFFD%u05AE%uFFFD%uFFFD");
document.write(relstr);
Nach dem Login kopieren

Es erschienen verstümmelte Zeichen: �ű�֮��

Lösung:
Öffnen Sie die Datei test.html mit Dreamweaver und entdecken Sie das Problem!
Der ursprüngliche Absatz

var teststr=escape("脚本之家");
Nach dem Login kopieren
Aus

wurde

var teststr=escape("&#369;&#1454;");
Nach dem Login kopieren

Es ist ersichtlich, dass dies an der anfänglichen Codierung des Editors liegt!
Ändern Sie die chinesischen Zeichen wieder in Dreamweaver, führen Sie test.html erneut aus und erhalten Sie die entsprechende Codierung:

%u811A%u672C%u4E4B%u5BB6
Nach dem Login kopieren


Verwenden Sie zu diesem Zeitpunkt unescape, um Folgendes zu dekodieren:

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

Wir haben das originale korrekte chinesische Schriftzeichen erhalten: Script House!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage