技術資料

URLエンコード・デコードの実装方法(Perl、PHP、JavaScript対応)

2009.12.02

error この記事は最終更新日から15年以上が経過しています。

日本語等の2バイト文字を URL として使用するための、URLエンコード・デコード方法を、perl / PHP /JavaScript の各言語別にまとめてみました。

と言っても、PHP と JavaScript はそれ専用の関数が用意されてるから簡単なんですけどね。

perl で URLエンコード・デコード

perl で URLエンコードするには、以下のようにします。

$word =  "はぴはぴはっぴー♪";
$word =~ s/([^0-9A-Za-z_ ])/'%'.unpack('H2',$1)/ge;
$word =~ s/\s/+/g;

これで「はぴはぴはっぴー♪」という文字列が「%82%cd%82%d2%82%cd%82%d2%82%cd%82%c1%82%d2%81%5b%81%f4」という文字列にエンコードされます。

続いて、perl での URLデコード方法。

$word =  "%82%cd%82%d2%82%cd%82%d2%82%cd%82%c1%82%d2%81%5b%81%f4";
$word =~ s/+/\s/g;
$word =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/ge;

これで「%82%cd%82%d2%82%cd%82%d2%82%cd%82%c1%82%d2%81%5b%81%f4」という文字列が「はぴはぴはっぴー♪」という文字列にデコードされます。

PHP で URLエンコード・デコード

前述の通り、PHP にはURLエンコード・デコード用の関数が用意されているので、非常に簡単です。

#-- URLエンコード
$word = "はぴはぴはっぴー♪";
$encoded = urlencode($word);

#-- URLデコード
$encoded = "%82%cd%82%d2%82%cd%82%d2%82%cd%82%c1%82%d2%81%5b%81%f4";
$word = urldecode($encoded);

JavaScript で URLエンコード・デコード

PHP と同じく、JavaScript にも URLエンコード・デコード用の関数が用意されているので、同じく簡単です。

// URLエンコード
var word = "はぴはぴはっぴー♪";
var encoded = encodeURI(word);

// URLデコード
var encoded = "%82%cd%82%d2%82%cd%82%d2%82%cd%82%c1%82%d2%81%5b%81%f4";
var word = decodeURI(encoded);

PHPとPerlでファイルパーミッションを変更する方法(chmod関数)

2024.11.16

PHPとPerlには、ファイルのパーミッションを変更するためのchmod関数が標準で用意されています。この記事では、PHPとPerlそれぞれのchmod関数を使ったファイルパーミッション変更の基本的な使い方を紹介します。

Perl PHP

問い合わせフォームにGoogle reCAPTCHA v3を組み込む方法

2023.04.07

スパムボットによる大量の問い合わせを防ぐために、GoogleのreCAPTCHA v3を導入する方法を解説します。reCAPTCHAを利用することで、フォーム送信時に自動的にボットを検出し、不審な送信を防ぐことができます。サイトの登録から、HTMLコードの埋め込み、サーバーサイドでの照合処理まで、必要な手順を順を追って説明します。

JavaScript PHP reCAPTCHA

perlとPHPでのCookie操作—書き込みと読み込みの基本

2009.11.15

CookieをHTTPヘッダに書き込む方法と、書き込んだCookieを読み込む方法について、perlとPHPのコード例を交えて解説します。具体的な設定項目や、複数のCookieを扱う方法も紹介し、簡単に使える方法を学べます。

Cookie Perl PHP

perlとPHPで使える、フォーム入力のエラーチェックに役立つ正規表現集

2009.03.28

フォームからのデータ送信はWebアプリケーションの基礎ですが、ユーザーが入力する内容が想定通りであるかを確認するためのエラーチェックは重要です。この記事では、perlとPHPでフォームデータをバリデートするための正規表現を具体例とともに紹介します。

Perl PHP 正規表現

阿部辰也へのお仕事の依頼・お問い合わせ

お名前 *必須
会社名
メールアドレス *必須
電話番号
URL
お問い合わせのきっかけ
お問い合わせの内容 *必須
個人情報の取り扱いについて *必須 プライバシーポリシーをご確認いただき、同意いただける場合は「同意する」にチェックをしてください。

keyboard_double_arrow_up
TOP