자바스크립트에서 escape 함수로 인코딩된 문자열 해독하기
개요
인터넷에서 데이터를 주고받을 때, 문자열을 인코딩하고 디코딩하는 과정은 필수적입니다. 자바스크립트에서는 이를 위한 여러 함수가 존재합니다. 그 중 escape
함수는 이제는 구식이지만, 여전히 많은 곳에서 사용되고 있습니다. 이 글에서는 escape
로 인코딩된 문자열을 어떻게 디코딩하는지 알아보겠습니다.
escape 함수의 작동 원리
escape
함수는 문자열 내의 특수 문자나 공백 등을 %
로 시작하는 이스케이프 시퀀스로 변환합니다. 예를 들어, 공백은 %20
으로 변환됩니다.
디코딩 방법 1: unescape 함수 사용하기
escape
로 인코딩된 문자열을 디코딩할 가장 간단한 방법은 unescape
함수를 사용하는 것입니다.
1
2
var encodedStr = escape("Hello World!");
var decodedStr = unescape(encodedStr);
이 코드에서 decodedStr
는 원래의 “Hello World!” 문자열로 복원됩니다.
디코딩 방법 2: decodeURIComponent 함수 사용하기
unescape
함수는 이제는 구식이므로, 현대 자바스크립트에서는 decodeURIComponent
함수를 추천합니다.
1
2
var encodedStr = escape("Hello World!");
var decodedStr = decodeURIComponent(encodedStr);
decodeURIComponent
함수도 unescape
함수처럼 작동하지만, 더 다양한 문자를 처리할 수 있습니다.
주의사항: Error: URIError: malformed URI sequence
decodeURIComponent
함수를 사용할 때 주의해야 할 점은 잘못된 형식의 문자열을 디코딩하려고 하면 URIError: malformed URI sequence
라는 오류가 발생한다는 것입니다. 이런 경우에는 예외 처리를 해주어야 합니다.
1
2
3
4
5
6
7
try {
var decodedStr = decodeURIComponent(encodedStr);
} catch(e) {
if (e instanceof URIError) {
// 오류 처리 코드
}
}
정리
escape
함수로 인코딩된 문자열을 디코딩하는 방법은 크게 두 가지입니다: unescape
함수를 사용하거나, 더 현대적인 decodeURIComponent
함수를 사용하는 것입니다. 어느 방법을 사용하든, 오류 처리를 잊지 말아야 합니다.