>  Q&A  >  본문

AJAX POST 및 더하기 기호(+) - 인코딩하는 방법은 무엇입니까?

AJAX를 통해 양식 필드의 내용을 PHP 스크립트에 게시하고 JavaScript를 사용하여 이스케이프합니다(field_contents). 문제는 더하기 기호가 제거되고 공백으로 대체된다는 것입니다. 더하기 기호를 안전하게 "인코딩"한 다음 PHP에서 적절하게 "디코딩"하려면 어떻게 해야 합니까?

P粉124070451P粉124070451456일 전622

모든 응답(2)나는 대답할 것이다

  • P粉010967136

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

    JavaScript로 사용해 보세요:

    으아악

    PHP:

    으아악

    회신하다
    0
  • P粉674999420

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

    JS와 PHP에서 encodeuriccomComponent()를 사용하면 올바른 값을 받게 됩니다.

    참고: PHP에서 $_GET, $_POST 또는 $_REQUEST에 액세스하면 이미 디코딩된 값을 검색하게 됩니다.

    예:

    JS에서:

    으아악

    서버에서

    으아악

    원본 HTTP 요청에만 URL 인코딩 데이터가 포함되어 있습니다.

    GET 요청의 경우 URI에서 검색할 수 있습니다. $_SERVER['REQUEST_URI'] 또는 $_SERVER['QUERY_STRING']. Urlencoded POST의 경우 file_get_contents('php://stdin')

    참고:

    Decode()는 단일 바이트 인코딩 문자에만 적용됩니다. 전체 UTF-8 범위에서는 작동하지 않습니다.

    예:

    으아악

    참고: "%C4%80" is equivalent to: escape('xc4x80')

    UTF-8(xc4x80)에서 Ā를 나타내는 바이트 시퀀스입니다. 따라서 encodeuriccomComponent()를 사용하는 경우 서버 측은 UTF-8을 수신하고 있음을 알아야 합니다. 그렇지 않으면 PHP가 인코딩을 망칠 것입니다.

    회신하다
    0
  • 취소회신하다