AJAX POST 및 더하기 기호(+) - 인코딩하는 방법은 무엇입니까?
P粉124070451
P粉124070451 2023-07-21 09:47:06
0
2
710

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

P粉124070451
P粉124070451

모든 응답(2)
P粉010967136

JavaScript로 사용해 보세요:

으아악

PHP:

으아악
P粉674999420

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가 인코딩을 망칠 것입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿