漢字および特殊な危険文字を送信する URL の解決策 (参考のみ) urldecode、base64_encode
Web開発の過程で、URLに漢字やHTMLなどの特殊文字を渡す必要がある場合、ブラウザによってエンコードが異なるため、常にさまざまな小さな問題に遭遇するようです。中国語の場合、一般的なアプローチは次のとおりです:
これらのテキスト文字列を URL に渡す前に、最初に urlencode($text) を実行します。
しかし、HTML 文字や SQL インジェクション関連の文字など、非常に「危険な」文字の場合、それらが明らかにシステムに渡される場合、システムは通常、セキュリティ上の理由からそれらをフィルタリングして除外します。
それでは、これらの危険な文字がフィルタリングされないようにする必要がある場合はどうすればよいでしょうか?
私が考える方法は、最初に base64_encode($text) でエンコードし、次にサーバーに到達したときに base64_decode($text) でデコードすることです。
は完璧に見えますが、使用中に別の問題が発生しました。 base64_encode エンコードされた文字列には、「/」、「+」、「=」およびその他の文字、
これらの文字は、「スペース」を表す「+」などの URL エンコードの特殊文字ですが、ブラウザによって「スペース」のエンコード方法が異なります。「+」を使用して表現する場合と、「+」を使用して表現する場合があります。 「スペース」。「20%」は、つまり、これらのbase64_encode でエンコードされた文字列が URL に渡された場合、異なるブラウザで閲覧すると、サーバーは異なる値を取得することを意味します。
そこで、私は妥協案を考えました。まず、これらの Base64 でエンコードされた特殊文字を置き換え、サーバーに到達した後に元に戻すというものです。
function base_encode($str) { $src = array("/","+","="); $dist = array("_a","_b","_c"); $old = base64_encode($str); $new = str_replace($src,$dist,$old); return $new; } function base_decode($str) { $src = array("_a","_b","_c"); $dist = array("/","+","="); $old = str_replace($src,$dist,$str); $new = base64_decode($old); return $new; }ブラウザで得られる効果は以下の通りです
xOO6w6Osuf65_aiy_atL_b00Ke5_b8jnus6ho6GjoaM_c
ははは、それがどのように機能するか見てみましょう。 。 。
興味のある記事
- PHP 関数 urlencode()、urldecode()、rawurlencode()、rawurldecode()
- 制限方法js では英語の文字と数字のみに変換されますが、中国語やその他の特殊文字は変換されません
- php は独自の MVC フレームワークの単純なケースを作成し、参考用としてのみアイデアを提供します
- で送信される文字化けする中国語の文字に対する解決策AJAX で POST または GET
- テーブル構造を変更する mysql コマンド: フィールドの追加、削除、変更、フィールド順序の調整
- PHP でデータを送信するにはcurl postを使用する 取得方法とメソッドのまとめWeb ページ データ
- js URL 内の指定されたパラメータの値を変更します
- チェックボックスとラジオはテキストに対して水平および垂直になります中央揃えの解決策

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

メモ帳++7.3.1
使いやすく無料のコードエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ドリームウィーバー CS6
ビジュアル Web 開発ツール
