컴퓨터 / 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 = ""
남녀공용 레터링 자수볼캡 데일리 심플 커플 야구모자
YB_G88854 가죽크로스백(중)
남자 9부 우븐카고바지 냉감바지 쿨링바지 조거팬츠
(챠밍)보정 플라워 올인원 밑면 스냅버튼 쉐이퍼
스마트폰 아이패드 태블릿 초미세 정전식 터치펜
DocuPrint P265dw 재생카트리지 대용량 검정 2600매
LG V50 IS 투명 젤리 케이스 V500
갤럭시 노트20 빨강머리앤v1 wk플립 N981 케이스
마이로맨스 디퓨져 방향제
이케아 GLASIG글라시그 미니양초홀더 유리5x5cm 5개입
이케아 FINSMAK 핀스마크 미니 양초 캔들 유리 홀더
복주머니 파우치 외국인 선물 기념품
브롤스타즈 옥타 가벼운 진공스텐수저
양변기부속품 측면버튼형 세트 무소음 좌변기 부품
코카콜라 제로 업소용 1.25L 12PET
이코노미 런치 플러스 혼합 캔 24개입

학습 교재용 원형자석 지름20mm두께3mm (200개입)
칠성상회
이케아 UNDERHALLA 운데르홀라 알파벳 숫자 카드
바이플러스

맨위로↑