AJAX POST とプラス記号 (+) - それをエンコードする方法は?
P粉124070451
P粉124070451 2023-07-21 09:47:06
0
2
671

フォーム フィールドの内容を AJAX 経由で PHP スクリプトに投稿し、JavaScript を使用してエスケープしています (field_contents)。問題は、プラス記号が削除され、スペースに置き換えられてしまうことです。 PHP でプラス記号を安全に「エンコード」し、適切に「デコード」するにはどうすればよいですか?

P粉124070451
P粉124070451

全員に返信(2)
P粉010967136

JavaScript で試してみる:

リーリー

PHP:

リーリー
いいねを押す +0
P粉674999420

JS および PHP で encodeuriccomponent() を使用すると、正しい値が返されるはずです。

注: PHP で $_GET、$_POST、または $_REQUEST にアクセスすると、すでにデコードされた値が取得されます。

例:

JS 内:

リーリー

あなたのサーバー上で

リーリー

元の HTTP リクエストのみに URL エンコードされたデータが含まれます。

GET リクエストの場合は、URI から取得できます。 $_SERVER['REQUEST_URI'] または $_SERVER['QUERY_STRING']。 URL コード化された POST の場合、file_get_contents('php://stdin')

注:

Decode() は、シングルバイトでエンコードされた文字にのみ適用されます。 UTF-8 範囲全体では機能しません。

###例えば:### リーリー

注:

"Ā"

は次と同等です: escape('\xc4\x80') これは、UTF-8 で Ā を表すバイト シーケンス (\xc4\x80) です。したがって、encodeuriccomponent() を使用する場合、サーバー側は UTF-8 を受信して​​いることを認識している必要があります。そうしないと、PHP がエンコードを混乱させます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート