퍼센트 인코딩
퍼센트 인코딩(percent-encoding)은 URI에 문자를 표현하는 문자 인코딩 방법이다. 이 방법에 따르면 알파벳이나 숫자 등 몇몇 문자를 제외한 값은 옥텟 단위로 묶어서, 16진수 값으로 인코딩한다.
예를 들어, '위키백과'라는 문자는 UTF-8 인코딩에서는 EC 9C 84 ED 82 A4 EB B0 B1 EA B3 BC로 표현되므로, 퍼센트 인코딩을 하면 %EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC가 된다.
퍼센트 인코딩은 유니코드뿐만 아니라 EUC-KR 같은 다른 문자 코드를 바탕으로도 인코딩 가능하다. '위키백과'는 EUC-KR에서 C0 A7 C5 B0 B9 E9 B0 FA로 표현되므로, 퍼센트 인코딩을 하면 %C0%A7%C5%B0%B9%E9%B0%FA으로 표현된다.
규약 [편집]
퍼센트 인코딩 규약은 RFC 3986에 정의되어 있다. 이 RFC에 따르면 URI에서 중요하게 사용되는 예약(reserved) 문자가 있고, 또한 인코딩이 필요하지 않은 비예약(unreserved) 문자가 존재한다.
비예약 문자에는 알파벳(A~Z, a~z), 숫자(0~9), "-", ".", "_", "~"이 있다. 이들 문자는 퍼센트 인코딩을 할 필요가 없고, 인코딩을 안 하는 것을 권장한다.
예약 문자에는 ":", "/", "?", "#", "[", "]", "@", "!", "$", "&", "'", "(", ")", "*", "+", ",", ";", "="이 있다. 이들 중 일부는 URI에서 중요한 문법적 의미를 가지고 있기 때문에, 그 의미로 사용할 것이 아니라면 반드시 인코딩을 해야 한다.