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関数を使ったファイルパーミッション変更の基本的な使い方を紹介します。
問い合わせフォームにGoogle reCAPTCHA v3を組み込む方法
2023.04.07
スパムボットによる大量の問い合わせを防ぐために、GoogleのreCAPTCHA v3を導入する方法を解説します。reCAPTCHAを利用することで、フォーム送信時に自動的にボットを検出し、不審な送信を防ぐことができます。サイトの登録から、HTMLコードの埋め込み、サーバーサイドでの照合処理まで、必要な手順を順を追って説明します。
perlとPHPでのCookie操作—書き込みと読み込みの基本
2009.11.15
CookieをHTTPヘッダに書き込む方法と、書き込んだCookieを読み込む方法について、perlとPHPのコード例を交えて解説します。具体的な設定項目や、複数のCookieを扱う方法も紹介し、簡単に使える方法を学べます。
perlとPHPで使える、フォーム入力のエラーチェックに役立つ正規表現集
2009.03.28
フォームからのデータ送信はWebアプリケーションの基礎ですが、ユーザーが入力する内容が想定通りであるかを確認するためのエラーチェックは重要です。この記事では、perlとPHPでフォームデータをバリデートするための正規表現を具体例とともに紹介します。