[목차] == 개요 == ||[[띄어쓰기|space]] [[공백]]||%20||(||%28||:||%3A||[||%5B||`||%60|| ||!||%21||)||%29||;||%3B||[[\\]]||%5C||{||%7B|| ||"||%22||*||%2A||<||%3C||]||%5D|| | ||%7C|| ||#||%23||+||%2B||=||%3D||^||%5E||}||%7D|| ||$||%24||,||%2C||>||%3E||_||%5F||~||%7E|| ||[[%]]||%25||-||%2D||?||%3F||.||.||.||.|| ||&||%26||.||%2E||@||%40||.||.||.||.|| ||'||%27||/||%2F||.||.||.||.||.||.|| [[쿼리 문자열]] 등 [[URL]] 요청에 비 [[ASCII]] 문자를 사용할 때 쓰는 [[인코딩#s-2|문자 인코딩]]. 그 정체는 %뒤에 [[아스키 코드]]의 hex(16진수)값을 붙여준 것. URL은 스페이스(space)를 포함할 수 없기 때문에, 스페이스는 %20으로 대체되는 것이 보통이다. 인코딩 형식에 [[%]]가 들어가기 때문에 퍼센트 인코딩이라고도 한다. 아스키 문자가 이미 다른 용도로 쓰이고 있어서 % 문자 뒤에 코드값을 넣어서 우회하거나, 아스키 코드 이외의 문자가 쓰일 때 아스키 문자로 돌려 쓰기 위하여 이런 방식이 사용된다. 이런 퍼센트 인코딩은 어떠한 문자 코드에도 대응시킬 수 있으나 점점 국제 표준인 [[UTF-8]]에 대응시키는 것으로 통일되는 추세이다. 과거 국내 웹 사이트에서 [[EUC-KR]]을 주로 사용하던 시절에는 한글 파일명을 찾지 못하는 경우가 많았으며, 이 때문에 [[https://filestore.community.support.microsoft.com/api/images/ce90302e-b4ff-4a3b-9e69-778295dbfbc2|'URL 경로를 UTF-8로 보내기'의 체크를 해제]]하라거나, 파일명을 영숫자만으로 적으라거나 하는 말들이 많이 보였다. 현재는 대부분 UTF-8로 통일하거나 아니면 서버 측에서 자동으로 변환해서 전송하기 때문에 아무래도 큰 문제는 없다. 다만 퍼센트 인코딩은 [[국제화 도메인 네임]](IDN)의 대체 표기로는 쓰이지 않는다. IDN의 대체 표기는 [[퓨니코드]](Punycode)라는 걸 이용해서 돌려 표기한다. 자세한 내용은 [[국제화 도메인 네임]] 문서 참고. == [[유니코드]] 문자의 URL escape code == 위 표는 [[ASCII]] 코드 문자를 URL encoding한 것이다. 유니코드 문자의 경우 일반적으로 [[UTF-8]] 방식을 따른다. (ASCII 문자는 UTF-8과 호환이 된다.) {{{ http://namu.wiki/w/나무위키 }}} 크롬이나 파이어폭스에서 주소창이 위와 같이 나타난다고 하면 URL encoding 과정은 아래와 같다. || 글자 || 유니코드 || UTF-8 || URL escape code || || 나 || U+B098 || EB 82 98 || %EB%82%98 || || 무 || U+BB34 || EB AC B4 || %EB%AC%B4 || || 위 || U+C704 || EC 9C 84 || %EC%9C%84 || || 키 || U+D0A4 || ED 82 A4 || %ED%82%A4 || 참고로 한글은 UTF-8 기준으로 3바이트를 할당하기 때문에 위와 같이 글자 마디 하나당 %XX패턴이 세 번씩 나타난다. 인코딩 결과는 아래와 같이 나온다. {{{ http://namu.wiki/w/%EB%82%98%EB%AC%B4%EC%9C%84%ED%82%A4 }}} PC 브라우저 중 [[Internet Explorer]]와 [[Microsoft Edge]]는 퍼센트 인코딩된 주소를 표시한다. 모바일 브라우저 중 [[삼성 인터넷]]은 13.2.1.70 버전부터 퍼센트 인코딩만 지원한다. 이전 버전에서는 주소 표시줄에만 인코딩되지 않은 주소를 표시하고 링크를 길게 눌렀을 때 나타나는 메뉴에서는 퍼센트 인코딩된 주소를 표시한다. == [[나무위키]]의 URL escape code == '''나무위키에서는 링크를 만들 때 항목명에 들어간 특수문자를 URL escape code로 풀어줄 필요가 없다.''' 단, # 기호는 특별처리한다. ||[[MORE & MORE]] ({{{[[MORE & MORE]]}}})|| ||[[도대체 왜?인구단]] ({{{[[도대체 왜?인구단]]}}})|| 오히려 URL escape code를 사용했을 때 문제가 생긴다. ||[[MORE%20%26%20MORE|{{{#ff0000,#dc4343 MORE & MORE}}}]] ({{{[[MORE%20%26%20MORE|MORE & MORE]]}}})|| 나무위키에서 위 링크를 클릭하면 {{{MORE%20%26%20MORE}}}항목으로 연결을 시도하다가 실패할 것이다. 이러한 현상이 일어나는 이유는 문서 작성/수정 시점인 2015년 6월 현재 나무위키의 엔진이 링크의 항목명에 포함된 %를 %25로 치환하여 인식하기 때문이다(주소창에는 ".../MORE%2520%2526%2520MORE"로 나온다). 엔진이 다른 나무위키 '''미러'''에서는 위 링크가 대체로 정상 작동한다. (이름에 &가 들어간 항목은 빼고.) 해시 기호는 URL anchor(fragment)를 연결하기 위해 쓰이므로 페이지 이름에 # 문자가 포함된 경우는 {{{[[C#]]}}}와 같은 식이 아닌 {{{[[C\#]]}}}을 쓴다. [[모니위키]]의 경우에는 URL escape code를 이용하여 {{{[[C%23|C#]]}}}으로 써야 한다. === GOTO === 나무위키에서는 [[GOTO]] 문서로 가는 링크를 만들 때 {{{[[GOTO]]}}}를 쓸 수 있다.[* 리그베다 위키는 [[모니위키]] 기반이었고, 모니위키에서 대괄호 두 개짜리는 원래 매크로 문법인데, 미디어위키식 링크를 도입하면서 매크로 문법과 같이 쓸 수 없는 경우가 생겼기 때문이다. 이 때문에 GOTO항목으로 가기 위해 대괄호 두 개짜리 링크를 걸면 GOTO 매크로가 작동하는 문제가 발생했고... [[더 이상의 자세한 설명은 생략한다.]]] * 대신에 {{{[GOTO]}}} 매크로는 나무위키에서 사용할 수 없게 되었다. 2015년 6월 1일 [[https://board.namu.wiki/notice/153681|일부 문법 변경 안내 공지]] 참조. [* 이 문법 변경으로 인해 {{{[문서]}}}, {{{[문서|출력]}}}, {{{[[wiki:"문서" 출력]]}}}, {{{[[wiki:"문서]]}}}, {{{[["문서"]]}}}는 모두 막혔다.] * {{{[[%47%4F%54%4F|GOTO]]}}}처럼 URL escape code로 풀어주는 방법은 사용할 수 없다. 앞서 언급한, 나무위키 엔진이 %를 %25로 치환하는 문제가 있기 때문. 대략 2015년 5월까지는 [[나무위키 미러]]에서 이 항목을 보았을 때[[https://namu.mirror.wiki/wiki/URL%20escape%20code|#]] {{{[[GOTO]]}}}가 문서 이동 창을 띄운 것을 확인할 수 있었으나, 수정 시점인 2015년 7월 현재 이 문제는 더 이상 확인되지 않는다. 나무위키의 문법 변경에 발맞추어 엔진을 고친 듯하다. 만약 당신이 미러를 사용중이고 이 문서가 나무위키에서 어떻게 보이는 지 궁금하다면 이 링크[[https://namu.wiki/w/URL%20escape%20code|#]]를 클릭하면 된다. [[분류:문자 전산 처리]]