ホームページ  >  記事  >  ウェブフロントエンド  >  2 つの HTML ページにパラメータを転送すると、オンラインの方法を試しましたが、うまくいきませんでした。 _html/css_WEB-ITnose

2 つの HTML ページにパラメータを転送すると、オンラインの方法を試しましたが、うまくいきませんでした。 _html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 12:25:051188ブラウズ

js html Java 開発 中国語の文字化けコード


	  Dialog = $.ligerDialog.open({url:"plot.htm?examCourse="+examCourse+"examScore="+examScore+"averageScore="+averageScore+"classRank="+classRank, height: 350,width: 450,title:'单科成绩详细分析'});
を plot.htm ページに渡すと、examCourse 中国語が文字化けして表示されます。これだけが中国語なので、これだけが文字化けしており、使用後は他のものはすべて正しいです。インターネット上の encodeURIComponentinfo メソッドはまだ機能しません。まだ多くのパーセント記号が文字化けしています。熱心なネチズンが解決を手伝ってくれませんか。緊急、緊急、緊急!

ディスカッションへの返信(解決策)

文字化けの原因はサーバー側でデコードするだけです

どの関数を使用すればよいですか?オンラインではほとんどありませんが、それでも機能しませんか?

%文字化けはURLエンコードの結果です。既製の関数があるはずです。オンラインでいくつか確認しましたが、まだ機能しません。

これを試してください

function utf8to16(str) {    var out, i, len, c;    var char2, char3;    out = "";    len = str.length;    i = 0;    while(i < len) {		 c = str.charCodeAt(i++);		 switch(c >> 4)		 { 		   case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:			 out += str.charAt(i-1);			 break;		   case 12: case 13:			 char2 = str.charCodeAt(i++);			 out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));			 break;		   case 14:			 char2 = str.charCodeAt(i++);			 char3 = str.charCodeAt(i++);			 out += String.fromCharCode(((c & 0x0F) << 12) |				((char2 & 0x3F) << 6) |				((char3 & 0x3F) << 0));			 break;		 }    }    return out;}document.writeln(utf8to16(unescape("%E4%BD%A0%E5%A5%BD")));

これを試してください

function utf8to16(str) {    var out, i, len, c;    var char2, char3;    out = "";    len = str.length;    i = 0;    while(i < len) {		 c = str.charCodeAt(i++);		 switch(c >> 4)		 { 		   case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:			 out += str.charAt(i-1);			 break;		   case 12: case 13:			 char2 = str.charCodeAt(i++);			 out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));			 break;		   case 14:			 char2 = str.charCodeAt(i++);			 char3 = str.charCodeAt(i++);			 out += String.fromCharCode(((c & 0x0F) << 12) |				((char2 & 0x3F) << 6) |				((char3 & 0x3F) << 0));			 break;		 }    }    return out;}document.writeln(utf8to16(unescape("%E4%BD%A0%E5%A5%BD")));
探し続けて、多くの方法を試しましたが、最終的に decodeURI を使用して、奇跡的にうまくいきました。笑、すべてのポイントを紹介します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。