ホームページ > 記事 > ウェブフロントエンド > JavaScript文字列をエンコードして変換する方法
JavaScript 文字列をエンコードおよび変換する方法: 1. すべてのコンピュータで読み取れるように文字列をエンコードするには、escape() 関数を使用します。構文は "escape (string)"; 2. unescape( ) 関数、構文「unescape(string)」。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
1. エスケープ メソッド
すべてのコンピュータで読み取れるように String オブジェクトをエンコードします。
escape(charString)
必須の charstring パラメータはエンコードされます。文字列オブジェクトまたはリテラル。
説明:
エスケープ メソッドは、charstring の内容を含む文字列値 (Unicode 形式) を返します。すべてのスペース、句読点、アクセント、およびその他の非 ASCII 文字は、%xx エンコーディングで置き換えられます。xx は、文字を表す 16 進数と同じです。たとえば、スペースは " " として返されます。 255 を超える文字値は %uxxxx 形式で保存されます。
注: エスケープ メソッドは、Uniform Resource Identifier (URI) のエンコードには使用できません。これをエンコードするには、encodeURI メソッドと encodeURIComponent メソッドを使用します。
2. unescape メソッド
escape メソッドでエンコードされた String オブジェクトをデコードします。
unescape(charstring)
必須の charstring パラメータは、デコードされる String オブジェクトです。
説明:
unescape メソッドは、charstring の内容を含む文字列値を返します。 %xx 16 進形式でエンコードされたすべての文字は、ASCII 文字セットの同等の文字に置き換えられます。 %uxxxx 形式でエンコードされた文字 (Unicode 文字) は、16 進エンコード xxxx の Unicode 文字に置き換えられます。
注: unescape メソッドは、Uniform Resource Identifier (URI) のデコードには使用できません。このコードをデコードするには、decodeURI メソッドと decodeURIComponent メソッドを使用できます。
AJAX が GET リクエストを使用して中国語の文字列を渡す場合、中国語の文字列も Unicode にエンコードする必要があります。一般に、 JS が使用されていますが、中国語の文字から Unicode エンコードへの変換を決定するためのより良い関数は次のとおりです
function uniencode(text) { text = escape(text.toString()).replace(/+/g, "%2B"); var matches = text.match(/(%([0-9A-F]{2}))/gi); if (matches) { for (var matchid = 0; matchid < matches.length; matchid++) { var code = matches[matchid].substring(1,3); if (parseInt(code, 16) >= 128) { text = text.replace(matches[matchid], '%u00' + code); } } } text = text.replace('%25', '%u0025'); return text; }
もちろん、サーバー側はエンコードされた文字列に対して 2 番目のトランスコーディングを実行する必要があります。文字列を UTF-8 エンコーディングに変換します。
function convert_int_to_utf8($intval) { $intval = intval($intval); switch ($intval) { // 1 byte, 7 bits case 0: return chr(0); case ($intval & 0x7F): return chr($intval); // 2 bytes, 11 bits case ($intval & 0x7FF): return chr(0xC0 | (($intval >> 6) & 0x1F)) . chr(0x80 | ($intval & 0x3F)); // 3 bytes, 16 bits case ($intval & 0xFFFF): return chr(0xE0 | (($intval >> 12) & 0x0F)) . chr(0x80 | (($intval >> 6) & 0x3F)) . chr (0x80 | ($intval & 0x3F)); // 4 bytes, 21 bits case ($intval & 0x1FFFFF): return chr(0xF0 | ($intval >> 18)) . chr(0x80 | (($intval >> 12) & 0x3F)) . chr(0x80 | (($intval >> 6) & 0x3F)) . chr(0x80 | ($intval & 0x3F)); } }
【推奨学習: JavaScript 上級チュートリアル 】
以上がJavaScript文字列をエンコードして変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。