今日のプロジェクトでは、漢字をJavaScriptでエンコードしてからUnescapeでデコードする必要がある状況に遭遇しました。コードセグメントをテストするとき、コードを文字化しました。
特定の状況は次のとおりです。
まず、editplusを使用してテストページtest.htmlを開き、次のHTMLコードを編集します。
< xmlns = "http://www.w3.org/1999/xhtml"> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> <title> unescape test </title> </head> <body> <cript> var testStr = escase( "wulin.com"); document.write(teststr); </script> </body> </html>
ページ印刷:
%ufffd%u0171%ufffd%u05ae%ufffd%ufffd%ufffd
この時点で、状況が間違っていることがわかります。漢字に対応する文字の数の観点からは、すでに間違っています!
次に、次のコードを使用して、unescapeで解読された漢字をテストします。
var relstr = unescape( "%ufffd%u0171%ufffd%u05ae%ufffd%uffd"); document.write(relstr);
ガベージコードが表示されます:�ű�֮��
解決:
DreamWeaverを使用してtest.htmlファイルを開き、問題を見つけました!
元の部分
var testStr = Escape( "wulin.com");
なる
var testStr = escase( "ű֮");
エディターの最初のエンコードが原因であることがわかります!
dreamweaverの漢字を変更し、test.htmlを再実行し、対応するエンコードを取得します。
%u811a%u672c%u4e4b%u5bb6
次に、unescapeを使用してデコードします。
var relstr = unescape( "%u811a%u672c%u4e4b%u5bb6"); document.write(relstr);
それから私は元の正しい漢字を手に入れました:wulin.com!