이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 12798|회답: 2

[JavaScript] JavaScript에서 URL 및 매개변수 인코딩

[링크 복사]
게시됨 2022. 4. 16. 오후 6:50:39 | | | |
URL 인코딩

어떤 문자는 URL에 나올 수 없고(예: 공백), 다른 문자들은 URL에서 특별한 의미를 가집니다. W3 URI 명세서(RFC 3986)에 정의된 문법에 맞게 특수 문자를 변환해야 합니다. 즉, URL은 우리가 익숙한 문자와 숫자, 그리고 URL에서 제어 문자로 사용되는 일부 예약 문자만 포함해야 합니다.

자바스크립트에서의 URL 인코딩 처리

자바스크립트에서는 encodeURIComponent()와 encodeURI() 내장 함수 모두 URL 인코딩이 가능하며, URL에 예약된 문자를 UTF-8 인코딩된 문자로 대체할 수 있습니다.

대부분의 브라우저는 공간을 20%로 인코딩하는 등 URL을 자동으로 인코딩하지만, 항상 예외가 있습니다. 다행히도 브라우저는 내장된 URL 인코딩 및 디코딩 기능을 제공합니다: encodeURI, encodeURIComponent 및 decodeURI, decodeURIComponent. 문제는 이 기능들을 어떻게 사용하는지, 그리고 그 차이가 무엇인가 하는 것입니다.

encodeURI()

문자열을 URL 인코딩하는 것은 쉽습니다. encodeURI를 호출해서 인코딩하고 싶은 문자열을 전달하기만 하면 됩니다. 이 함수는 인코딩된 URL을 반환합니다.

DECODEURI()

이 함수는 decodeURI 함수를 디코딩하고 호출하여 인코딩된 문자열을 전달한 후 디코딩된 일반 문자열을 반환합니다.



encodeURIComponent()

encodeURIComponent 함수는 쿼리 문자열의 매개변수 값을 인코딩하는 데 사용해야 합니다. encodeURI와 encodeURIComponent의 차이점은 encodeURIComponent가 전체 문자열을 인코딩하는 반면, encodeURI는 프로토콜 접두사('http://')와 도메인 이름을 무시한다는 점입니다. encodeURIComponent는 모든 것을 인코딩하도록 설계된 반면, encodeURI는 URL의 도메인 이름 부분을 무시합니다. 네가 할 때URL에 매개변수 값을 인코딩하고 싶을 때는 encodeURIComponent 함수를 선택하세요

decodeURIComponent()

decodeURIComponent 함수는 encodeURIComponent 함수의 인코딩된 문자열을 디코딩하여 정상 내용으로 복원합니다.



복습:

JS는 URL을 인코딩하고 디코딩합니다 (세 가지 구분 방법
https://www.itsvse.com/thread-6844-1-1.html

URL 인코딩 및 디코딩
https://www.itsvse.com/thread-2728-1-1.html

ASP.NET 에서의 URL 인코딩 및 디코딩
https://www.itsvse.com/thread-2642-1-1.html






이전의:SQL Server 시간 간격 우선순위 선택
다음:jQuery 숨김은 두 가지 해결책으로 작동하지 않습니다
게시됨 2023. 2. 8. 오후 10:07:55 |
요청 받기 URL에 #특수 문자를 표시하고, #을 자동으로 가로채면 URL 주소가 잘못되어 정상적으로 접근할 수 없습니다
게시됨 2023. 12. 21. 오전 10:22:07 |
프롬프트:작가가 차단되거나 삭제되면 콘텐츠가 자동으로 차단됩니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com