소프트웨어/C# & ASP.NET

UTF-8로 웹 사이트 배포하기

falconer 2008. 7. 30. 11:22

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