[원문 링크](https://it-eldorado.tistory.com/143)
### 개요
**URL 인코딩이란 [[URL]]에서 URL로 사용할 수 없는 문자 혹은 URL로 사용할 수 있지만 의미가 왜곡될 수 있는 문자들을 '%XX'의 형태로 변환하는 것**을 말한다. 여기서 XX는 16진수 값이다. 그리고 URL 디코딩이란 변환된 URL을 다시 원래의 형태로 되돌리는 것을 말한다.
### 필요한 이유
1) 인터넷에서 **송수신되는 문자는 오직 아스키코드**이다.
- 한글과 같이 인터넷으로 송수신이 안 되는 문자는 [[UTT-8]]로 인코딩 된다.
2) URL에서 예약된 의미로 사용되는 문자열은 이스케이프 처리가 필요하다.
- '/', '&', '=' 등.
3) 공백 문자도 허용되지 않는다. `%20` 이나 `+`로 인코딩된다.
### 인코딩 방법
#### [[JavaScript]]
- URL 인코딩 : [encodeURIComponent(인코딩할 문자열)](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent)
- URL 디코딩 : [decodeURIComponent(디코딩할 문자열)](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent)
#### [[Python]]
- URL 인코딩 : [urllib.parse.quote(인코딩할 문자열, safe='')](https://docs.python.org/3/library/urllib.parse.html#urllib.parse.quote)
- URL 디코딩 : [urllib.parse.unquote(디코딩할 문자열)](https://docs.python.org/3/library/urllib.parse.html#urllib.parse.unquote)
- 인코딩 사이트: [온라인 URL 인코더](https://www.convertstring.com/ko/EncodeDecode/UrlEncode)