컴퓨터 / Computer

웹 사이트 언어 설정하기 - 한글이 깨졌을때 대처하는 법

한글문화예술제 2019 관련 이미지 



요새는 한글 코드 설정이 쉬워서 이런 일은 껌이라고 생각하기 쉬운데, 그래도 혹시나 이래저래 잘 안 풀리면 점검할 항목을 만들어 두어야 한다.


리눅스나 윈도 등 서버에서 DB 설치하고 웹 서버 설치하고 html을 올렸는데 한글이 깨져 나온다. 무척 난감한 상황이다. 이럴때는 아래 순서대로 확인을 해 보자.


1. DB 서버 언어 설정 ( 참고 : http://www.7-star.net/bbs/board.php?bo_table=talk_computer&wr_id=2 )


DB에서 언어 설정은 2가지가 있다. 첫째는 Character Set, 둘째는 Table Collation. 정말 멋모르고 시스템 설정할때는 문자셋이나 테이블 정열 방식을 latin1_swedish_c1 으로 했었다. 물론 이렇게 해도 웹 서버를 운용하는데는 문제가 없다! DB자체 언어 설정과 웹 서버 및 html 언어 설정이 별개로 되어 있다. 하지만! 관리 및 업그레이드 편의성을 위해서는 한글 중심으로 된 코드를 써야 한다. 한글은 EUC_KR이나 UTF-8을 써야한다. 


요약하자면, 아래와 같다.

 - 대상 : DB Character Set, Table Collation

 - 택 1 : EUC_KR, UTF-8


각자 둘 중 하나를 택해서 쓰시라. ( 장기적으로는 UTF-8로 하는게 정신적 육체적 건강에 좋다. )


2. 웹 서버 


자, 여기서부터는 중요하다. DB 서버에서 받은 자료를 사용자의 브라우저에 뿌려주는 웹 서버가 매우 큰 역할을 하는데, 아래 박스의 두 가지 중 하나를 택하면 된다. 이건 1의 언어 설정과 무관한데, 이왕이면 "같이" 설정해 주는게 좋다. 

httpd.conf에 아래 둘 중 하나를 선택하여 복사해 두시라.


AddDefaultCharset UTF-8


AddDefaultCharset  EUC-KR



* 사족. 물론 php.ini 에도 아래와 같은 항목이 있으나 굳이 대세에는 영향이 없다.


 ;default_charset = "UTF-8"



3. html 소스 ( 참고 : https://webisfree.com/2017-04-09/html%EC%97%90%EC%84%9C-%ED%95%9C%EA%B8%80-%EA%B9%A8%EC%A7%90-%EB%AC%B8%EC%A0%9C-%EB%98%90%EB%8A%94-%ED%98%84%EC%83%81%EC%9D%84-%ED%95%B4%EA%B2%B0%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95%EC%9D%80 ) 


1은 크게 관련이 없는데, 2에서 설정한 언어코드에 맞에 아래 둘 중 하나를 html 의 <head>에 넣어 둔다.


utf-8로 설정할 경우.

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

 <meta charset="UTF-8" />



euc-kr로 설정할 경우.

 <meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />

 <meta charset="EUC-KR" />




여기까지 해서 안 풀리는 한글 문제는 거의 없다. 만약 안 풀린다면 html 소스의 한글 설정 자체가 꼬인 경우일 듯. 그리고 DB에서 문서 가져 올때 링크의 "set names"를 유념하시라. 



Comments

공유지기 2020.07.23 01:17
사이트에서 utf8과 euckr을 동시에 쓰고자 할때는 php.ini 에 아래를 넣는다. 이때 utf8과 euckr 셋팅은 주석처리한다.

default_charset = ""

bob 차량용 비상탈출용 다용도 미니 해머 망치 절단기
칠성상회
그랜드스타렉스 번호판가드 현대모비스 자동차 번호판
칠성상회
우신 박스테이프 백색 노랑 파랑 빨강 컬러50M 50개
칠성상회
생활굿 2024 캘린더 스탠딩 탁상달력 랜덤1개
칠성상회