ホームページ  >  に質問  >  本文

AJAX POST とプラス記号 (+) - それをエンコードする方法は?

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

P粉124070451P粉124070451456日前618

全員に返信(2)返信します

  • P粉010967136

    P粉0109671362023-07-22 00:53:41

    JavaScript で試してみる:

    リーリー

    PHP:

    リーリー

    返事
    0
  • P粉674999420

    P粉6749994202023-07-22 00:39:11

    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
  • キャンセル返事