특정 웹페이지에서 문자가 깨지는 경우 (인코딩 문제)

by 조쉬 posted Mar 18, 2016
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

* 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');

?>