
プログラム初心者です
デコードについておしえてください
検索結果のページングでエンコードとデコードを使おうと思っています
urldecodeは、文字列中にエンコードされた文字がなくても大丈夫ですか?
例えば、これだとデコードできますが
$search = urldecode("%E3%81%82");
これでも問題ないでしょうか?(デコードする文字がありませんみたいなエラーはありませんか?)
$search = urldecode("あ");
使い方おかしい!とかありましたらよろしくお願いします
質問2
試しにエンコードしないでページングしたらIE8で成功してしまったのですが、やっぱりエンコードしたほうがいいですよね?(対応できないブラウザはありますか?)
No.1ベストアンサー
- 回答日時:
質問1:
http://php.net/manual/ja/function.urldecode.php
ここに書いてある通り、urldecode はエンコード文字
%## とプラス記号 ('+') を変換するだけの機能で、
他の文字は放置されます。変換対象がないからと
いってエラーになることもありません。
質問2:
URLに使用できる文字というのは決まっています。
URLエンコードとは 『URLに使用できない文字を、使
用できる文字の範囲に収まるように変換する』操作
です。
URLとして使う文字は全てエンコードすべきです。
ブラウザによってはURLに使えない文字でも問題なく
動くこともありますが、それは『親切なブラウザだね』
程度に考えておきましょう。
※エンコードの問題は、ブラウザよりもサーバのほうで
ダメになるパターンのほうが多いですよ。
回答ありがとうございます
>質問1
これで安心して使えます。ありがとうございました
>質問2
サーバのほうでもダメになるのですね
全てエンコードするようにしました。
No.2
- 回答日時:
urldecode関数はデコード可能な部分のみデコードする関数です。
Qiita - [PHP] リクエストパラメータ・セッションに関するまとめ
http://qiita.com/mpyw/items/7852213f478e8c5a2802
こちらの記事で詳しく書いているのでご覧ください。GETに関して、
「パーセントエンコードされていない 半角スペース と 改行 と NULLバイト の混入は一切認められない。」
と書きましたが、これはリクエストヘッダーレベルで見たときのことを指します。ブラウザがリクエストヘッダーを生成する段階で自動的に無効な文字列をエンコードするように実装されていれば問題なく処理されるでしょう。ですがこれに依存するのは互換性を考えると当然避けるべきです、基本的にはすべてurlencode関数もしくはrawurlencode関数を通すようにしましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- テレビ NHK 衛星8K(BS8K)を見てトラブルになってるんですが、ライブ映像の8Kを見た時に、恐らくエン 1 2023/01/03 21:15
- CPU・メモリ・マザーボード AMD CPUの再生支援、ハードウェア動画エンコード機能について 1 2023/08/26 22:16
- その他(メールソフト・メールサービス) outlookからの送信された件名が文字化けします 2 2023/04/18 14:29
- デスクトップパソコン mini pcお勧め 5 2023/08/14 19:53
- 日本語 「使われている」と使い方が違うのは次のどれか 1 2022/07/11 20:08
- ドライブ・ストレージ 外付けSSD Windowsが認識するのは容量何TBまで? 高容量の外付けSSDは粗悪品? 5 2022/04/28 12:27
- その他(gooサービス) ブログ投稿時の絵文字使用について 2 2023/07/21 14:55
- CPU・メモリ・マザーボード PCについて 2 2023/03/30 22:25
- デスクトップパソコン ゲーミングデスクトップPCでマインクラフトなどの比較的負荷が軽いゲームを録画・編集・エンコードしてY 3 2023/02/09 21:44
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php文字列中のシングルクオート...
-
FTPコマンドでディレクトリごと...
-
PHPのif文でその処理を途中で抜...
-
libpng 24bpp rawをPNGに変換す...
-
ファイルの遷移がうまく行われ...
-
PHPで画像アップロード時にサイ...
-
PHPで`headers already sent`と...
-
SELECTの値を保持する
-
VB2008でFTPでのディ...
-
sqlで日付が一番古いデータの月...
-
.phpと.incファイルの違いはな...
-
.htaccessファイルの修正がこれ...
-
visualstudioでc#のdllができない
-
サーバーによってはmb_send_mai...
-
*.php、*.php3、*.phtmlの違い
-
PHPの変わった閉じタグの必要性...
-
「クラス関数」「メンバ関数」...
-
FTPClientで転送結果(OKかFAIL)
-
PHPインストールについて
-
フォントの色を変えるには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php文字列中のシングルクオート...
-
getでurl
-
php→JavaScript間の変数受け渡し
-
PHPにおいて、配列データをMySQ...
-
is_callable()の第二引数の使い方
-
PHPでカンマ区切り文字列を数値...
-
PHPのGETとPOSTの処理を学習中...
-
ある文字列の最後の2桁で分解...
-
文字列を大文字の2桁ごとのコン...
-
PHP,Perl の正規表現で”ー"...
-
php 言語について
-
文字列を%+2桁のヘキサ
-
urldecodeについて
-
PHPで4桁の文字コード(SHIFTJI...
-
PHP4から5への移行に伴うFatal ...
-
blob型のデータの変換について
-
【比較演算子】偶数・奇数識別...
-
リダイレクトできません。クエ...
-
秀丸エディタのハイライト(mar...
-
phpでの単語数
おすすめ情報