ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript文字列をエンコードして変換する方法

JavaScript文字列をエンコードして変換する方法

青灯夜游
青灯夜游オリジナル
2021-04-19 15:14:579461ブラウズ

JavaScript 文字列をエンコードおよび変換する方法: 1. すべてのコンピュータで読み取れるように文字列をエンコードするには、escape() 関数を使用します。構文は "escape (string)"; 2. unescape( ) 関数、構文「unescape(string)」。

JavaScript文字列をエンコードして変換する方法

このチュートリアルの動作環境: 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], &#39;%u00&#39; + code); 
} 
} 
} 
text = text.replace(&#39;%25&#39;, &#39;%u0025&#39;); 
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 サイトの他の関連記事を参照してください。

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