* Incident
웹사이트에서 문자가 깨지는 경우는 인코딩 문제라고 볼 수 있다.
웹브라우저에서 인코딩 설정을 선택할 수 있는데 보통 웹서버나 웹소스에서 설정한 인코딩으로 자동 변환된다.
여기서는 웹서버에서의 인코딩 설정 방법과 웹소스에서 설정방법을 안내한다.
* Resolution
1. 웹서버(Apache)에서 인코딩 설정 방법 (오버라이딩)
[root@mooon]# vi /usr/local/apache/conf/httpd.conf ... AddDefaultCharset utf-8 ... |
httpd.conf 파일 내용에 AddDefaultCharset 값에 원하는 인코딩코드를 넣어주면 서버 내 모든 웹사이트에 강제 적용된다.
하나의 인코딩코드만 적용 가능하기 때문에 서버 내 모든 사이트가 동일한 인코딩으로 표현되어 있어야 한다.
주로 사용하는 인코딩 코드는 다음과 같다.
euc-kr : 한국어
utf-8 : 세계언어를 모두 표현할 수 있는 인코딩
이 기능을 사용하면 오버라이딩 되므로 웹소스에 META 태그를 이용한 인코딩을 바꿀 수 없다.
2. 웹소스에서 인코딩 설정 방법
아파치 설정파일(httpd.conf)에서 위의 AddDefaultCharset 값을 off로 변경하거나 주석처리 하면 META 태그를 사용하여 인코딩 설정을 할 수 있다.
[root@mooon]# vi 소스파일.html ... <!-- <HEAD> 부분에 삽입 --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ... |
html의 헤더부분에 위와 같이 원하는 인코딩코드를 넣어 META 태그를 삽입한다.
만약 위와 같이 하였는데도 적용이 안될 경우 아래와 같이 페이지 최 상단에 헤더 함수를 추가하고 웹서버에서 인코딩 설정이 되어있는지 확인한다.
<? header('Content-Type: text/html; charset=utf-8'); ?> |