UTF-8로 웹 사이트 배포하기
1. 개요
VS.NET에서 웹 사이트를 배포할 때 Web.config 파일의 전역화 설정을 보면
<globalization requestEncoding="ks_c_5601-1987" responseEncoding="ks_c_5601-1987"/>
로 설정되어 있습니다.
Ks_c_5601-1987은 캐릭터 셋의 명칭이고 이것의 인코딩 명칭은 EUC-KR 입니다.
즉 위에 euc-kr 로 써야 할 명칭이 Ks_c_5601-1987 로 잘못 쓰여졌다는 논란이 있기도 합니다만,
결국은 웹 사이트를 euc-kr로 배포하겠다는 의미를 나타냅니다.
하지만 외국 사이트에서 euc-kr로 인코딩된 웹 사이트로 접근시 글자가 깨지게 됩니다.
그렇기 때문에 외국에서 한글 사이트를 배포해야 할 경우가 발생할 때 표준 인코딩 방식인 UTF-8로 인코딩 해야 합니다.
그럼 asp.net 사이트에서 utf-8로 인코딩하기 위해서 어떻게 해야 하는지를 알아보도록 하겠습니다.
2. aspx 파일
웹 사이트의 aspx 파일은 aspnet_isapi.dll을 통해 전역적인 설정이 web.config에 영향을 받게 됩니다.
결국 web.config의 전역화 설정을 지정함으로서 aspnet_isapi 필터로 들어오는 확장자들은 모두 utf-8로 인코딩이 됩니다.
설정은 아래와 같이 해주시면 됩니다.
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
3. css / js / html / etc 파일
Css / js / html / etc 파일들은 web.config의 설정으로 반영되지 않습니다.
Euc-kr로 인코딩된 이들 파일들의 내용 중 한글이 있다면 글자가 깨집니다.
이들 파일들은 메모장으로 열어 다른 이름으로 저장한 다음 인코딩 방식을 UTF-8로 지정해 줍니다.
저장한 후 덮어쓰시면 이 파일 자체를 UTF-8로 인코딩하므로 웹 사이트에서 페이지를 볼 때 한글이 제대로 나오게 됩니다.
4. 언어팩
예전에 다국어 관련 비슷한 작업을 할 때 windows 98 OS에서 테스트를 했었으나 다 깨지는 문제가 발생했었습니다.
당시 그 OS에는 언어팩이 설치가 되질 않아 캐릭터 셋이 존재하지 않기 때문에 글자가 깨지는 원인이었습니다.
Windows XP에는 왠만한 대부분의 국가들의 언어팩이 설치되어 있기 때문에 UTF-8로 인코딩 시 깨지는 경우는 거의 없을 것입니다.
단, 한글 언어팩이 설치가 안되있는 OS라면 깨지겠죠..
글로벌 서비스를 할 때 js, css, html 파일들에 한글을 넣는 것에 대해 부담을 가지시는 분들이 계시는 것 같아
조금이라도 도움이 될까 작성해 봤습니다.
출처 : http://tit99hds.egloos.com/1907207
'소프트웨어 > C# & ASP.NET' 카테고리의 다른 글
닷넷 가비지 컬렉터의 동작원리 (0) | 2008.08.20 |
---|---|
[C#] Flag 연산 총정리 (0) | 2008.08.11 |
ASP.NET 성능 개선 TIP 리스트 (0) | 2008.07.25 |
닷넷 C# Thread (쓰레드처리) (0) | 2008.07.24 |
C#의 디버깅과 오류 처리 (0) | 2008.07.24 |