get 요청을 할 때 파일 이름을 파라미터로 보내서 엑셀 파일을 받아오는 기능이 있다.
파일 이름에 특수문자가 포함되어있을 때 파일 이름을 제대로 보내지 못해 엑셀 파일을 못 받아오고 있었다.
encodeURIComponent("test?");
퍼센트 인코딩은 그냥 인코딩 하고싶은 문자열을 표준내장 객체인 encodeURIComponent 을 사용해주면된다.
encodeURIComponent 도 있고 encodeURI 도 있는데
둘의 차이는 encodeURIComponent 가 좀 더 많은 종류의 특수문자를 퍼센트 인코딩 한다는 것이다.
encodeURIComponent 는
Not Escaped:
A-Z a-z 0-9 - _ . ! ~ * ' ( )
이걸 제외하고 인코딩 한다고 하고
encodeURI 는
이스케이프 하지 않는 문자:
A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) #
이걸 제외하고 인코딩한다고 한다.
쿼리스트링 혹은 쿼리파라미터에 특수문자가 있을 때 encodeURIComponent 를 사용하면 되겠다 ~
URL 인코딩이란 URL 에서 URL로 사용할 수 없는 문자 혹은 URL 로 사용할 수 있지만 의미가 왜곡 될 수 있는 문자들을
"%XX" 형태로 변환하는 것을 말한다.
XX는 16진수 값이다. 그리고 URL 디코딩이란 변환된 URL 을 원래 형태로 되돌리는 것을 말한다.
왜 변환 해 줘야 할까?
인터넷을 통해 전송할 수 있는 문자는 오로지 아스키 문자 라서 .
아스키 문자가 아닌 문자는 변환 해 주어야함
한글 -> 아스키 문자 변화은 UTF-8 규칙을 따른다.
아스키더라도 예약된 의미를 가지고있는 문자의 경우, 그 문자 자체의 의미를 전달하고 싶은 경우에는 이스케이프 처리가 필요하다.
/ , & , = 들은 아스키 문자이지만 URL 내에서 특별한 의미를 지니고 있다. 그래서 이 문자들을 문자 그대로 전달하고 싶다면 이스케이프 처리가 필요하다
URL 은 공백문자가 허용되지 않는다 !! 공백은 %20 혹은 +로 인코딩 된다고 한다.
참조
https://steady-snail.tistory.com/111
[웹 프로그래밍] GET 방식으로 query string 넘길 때 특수문자 사라짐 현상
웹에서 GET방식으로 어떤 값을 넘겨줄 때 간혹 제대로 나오지 않는 문자가 있습니다. 바로 특수문자중에 +와 &인데 GET방식으로 하면 Query String으로 URL의 뒤에 '?'문자와 함께 같이 붙어져서 URL을
steady-snail.tistory.com
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
encodeURIComponent() - JavaScript | MDN
encodeURIComponent() 함수는 URI의 특정한 문자를 UTF-8로 인코딩해 하나, 둘, 셋, 혹은 네 개의 연속된 이스케이프 문자로 나타냅니다. (두 개의 대리 문자로 이루어진 문자만 이스케이프 문자 네 개로
developer.mozilla.org
https://it-eldorado.tistory.com/61
[문자열 인코딩] ASCII, ANSI, UTF-8, UTF-16 등
이번 포스팅에서는 문자열을 바이트열로 인코딩하는 방식에 대해 알아볼 것이다. 바이트열을 문자열로 인코딩하는 방식(ex. Base 64)이 아니므로 방향성에 주의하자. 문자열 인코딩 방식에는 여러
it-eldorado.tistory.com
https://it-eldorado.tistory.com/143
[Web] URL 인코딩/디코딩 (URL Encoding/Decoding)
이번 포스팅에서는 URL의 인코딩/디코딩에 대해 간단히 알아볼 것이다. 그런데 이것을 이해하려면 먼저 문자열 인코딩에 대한 배경지식이 있어야 한다. 만약 ASCII, UTF-8의 개념을 정확히 알고 있
it-eldorado.tistory.com
+) 헷갈렸던 개념 정리
Query string 쿼리스트링이란?
URL 에서 물음표 다음에 오는 것들이 쿼리 스트링
/profiles/velopert
이런식으로 값을 전달하는건 파라미터
'Today I Learned' 카테고리의 다른 글
[ TIL ] 기본 브라우저 변경하기 / react 실행 브라우저 변경 (0) | 2023.04.25 |
---|---|
[ TIL ] 함수 표현식 / 함수 선언식 (0) | 2023.04.25 |
[ TIL ] github.io 배포 하얀 화면 (1) | 2023.04.18 |
[ TIL ] react-hook-form (0) | 2023.04.03 |
[ TIL ] React-router-dom v6 Nested Routes (0) | 2023.03.31 |
댓글