ホームページ > ウェブフロントエンド > jsチュートリアル > decodeURIComponent_javascript のヒントを使用した Javascript での Urlencode エンコードおよびデコード方法

decodeURIComponent_javascript のヒントを使用した Javascript での Urlencode エンコードおよびデコード方法

WBOY
リリース: 2016-05-16 18:29:00
オリジナル
1042 人が閲覧しました

ASP(Server.UrlEncode)やPHP(urlencode())関数のエンコード結果や、aspやphpなどの動的言語を介してCOOKIESに直接書き込まれた漢字については、JSで読み込むとエンコードが発生します。つまり、最終的な文字列は urlencode でエンコードされており、クライアント側で JS からデータを読み取る必要がある場合があります。

この記事では、システム独自の関数を使用して js でこの問題を解決する方法について簡単に説明します。

この問題に遭遇した友人ならある程度は理解できるはずですが、現在、vbscript (URLDecode()) や javascript (UrlDecode() など、js のいくつかのカスタム関数がこの問題を解決するためにインターネット上で普及しています。 ))待って。これら 2 つの関数はどちらも、asp (Server.UrlEncode) および php (urlencode()) と相互に適切に通信できません。
vbscript (関数 URLDecode()) と javascript (関数 UrlDecode()) についても、この記事の最後に再掲します。

この記事の主役はJavaScript(UrlDecodedecodeURIComponent())ですが、この関数名はありふれていて個人的にはよくわかりません。結局のところ、jsにはシステム関数がたくさんあり、簡単です。見逃してください。心配は偶然この機能を発見しました!

エンコード関数: encodeURIComponent()
デコード関数: decodeURIComponent()
decodeURIComponent() 構文

コードをコピー コードは次のとおりです:

decodeURIComponent(URIstring)
パラメータ: (URIstring) が必要です。エンコードされた URI コンポーネントまたはデコードされるその他のテキストを含む文字列。
戻り値: 16 進数のエスケープ シーケンスが、それが表す文字で置き換えられた URIstring のコピー。

例:
コードをコピー コードは次のとおりです:

< ;script type="text/javascript">
var test1="トラブル";
var test2="トラブル"; :" encodeURIComponent (test1) "
");
document.write("Decode (original =" test2 "): " decodeURIComponent(test2));



結果:

コードをコピー コードは次のとおりです:
エンコード (オリジナル =Trouble):トラブル
デコード (オリジナル =Trouble):トラブル


注: この記事は UTF-8 エンコード環境でのみテストされています。エンコーディング環境が異なると、ASP のコンパイルされたコード (Server.UrlEncode) が異なるように見えるため、テストする必要があります。
添付の再版:
vbscript (function URLDecode())

コードをコピー コードは次のとおりです:



javascript(function UrlDecode())其实还是柔和使用了vbscript,好像在javascript环境中,对于asc、hex、chr相关的转换,如 str.charCodeAt(0).toString(16) 及 String.fromCharCode(str) 在不同编码下,对于中文的编码结果还不统一。
比如: vbscript str2asc/asc2str
复制代码 代码如下:




javascript str2asc/asc2str
复制代码 代码如下:




演示:

[Ctrl A 全选 注:
如需引入外部Js需刷新才能执行]
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート