Internationalized Resource Identifiers

그동안 “URL을 항상 UTF-8로 보냄을 끄시오.” 이런 류의 불친절하고 무식하기 짝이 없는 문구를 여러 사이트에서 보아 왔습니다. 이제 더 이상 주소창에 한글을 쓰기 위해서, 최종 사용자가 인코딩을 신경써야 할 필요가 없습니다!

원래 URI에서는 US-ASCII외의 문자는 사용이 전혀 금지되어있습니다. 따라서, URI에는 한글을 못 쓰는 것이 당연한데, 이를 퍼센트 이스케이프를 사용해서 EUC-KR이나 UTF-8로 인코딩해서 보내 왔습니다. MSIE의 디폴트 옵션과, 모질라 계열 브라우저에서는 UTF-8을, Safari와 맥용 MSIE, 국내의 많은 사이트에서는 EUC-KR로 인코딩한 것을 쓰고 있어서, 사실 여러 인코딩의 난무에 제대로 보이게 해 주기가 곤란했고, 가장 심각한 경우가 블로그 trackback의 초기 스펙에서 GET으로 보내는 바람에 자기 사이트와 상대 사이트의 인코딩이 같아야만 트랙백이 깨지지 않고 보내는 문제까지도 발생했었습니다.

곧 RFC에 등록될 [WWW]draft-duerst-iri-09에서는 이 문제를 해결하기 위해서, IRI를 소개했습니다. 이 작업은 W3C의 주도로 이뤄지고 있는데, Microsoft 직원도 공동 저자로 표기되어있는 걸로 봐서 MSIE에서도 곧 지원하지 않을까 합니다. (물론 CSSv3같이 자기가 만들고 자기가 지원 안하는 경우가 있을지도 모르겠지만 –;)

IRI에서는 그냥 인코딩을 UTF-8로 쓰는 것이나 사실 비슷하긴 한데, 오른쪽에서 왼쪽으로 쓰는 언어를 위한 BiDi 지원에 대한 고려를 좀 추가하였고, 정규화를 NKFC또는 NFC로 명시해서 웹서버를 좀 더 편하게 해 주고 있습니다. 단, IRI는 URI를 기존에 쓰던 위치에서는 그대로 못 쓴다고 명시를 하고 있는데요. 즉, 아직 “URI”를 쓴다고 표시하고 있는 표준에 대해서는 그 위치에 IRI를 바로 쓰는 것이 아니라 IRI를 URI로 변환한 다음에 쓰도록 하고 있습니다. 하지만, IRI를 URI로 변환하면 사실상 정규화와 BiDi를 제외하고는 거의 그냥 UTF-8에 퍼센트 인코딩만 추가한 것이나 비슷한데, “항상 UTF-8로 URL을 보냄을 끄시오.”하는 우리나라 웹 실정과 맞을 지는 의문입니다. –;;

파이썬의 urllib{,2}에서도 draft-duerst-iri-09가 RFC에 등록되자 마자 바로 지원을 할 예정입니다.

11 thoughts on “Internationalized Resource Identifiers”

Comments are closed.