문자셋 설정하는 방법을 한데 모아 보았습니다. 우선순위에 유념하여 설정하길 바랍니다.
문자셋 우선순위
아파치 웹서버 설정파일에 문자셋을 지정할 수 있다. 하지만 HTML 문서등을 작성할때 문자셋을 지정하면 이 값이 다른 값보다 우선시된다. php 설정에서도 기본 문자셋을 지정할 수 있다.
서버에서 문자셋 설정하기
Apache 웹서버 UTF-8 설정
httpd.conf 에 추가하면 되는데 리눅스 배포판 별로 다르다.
AddDefaultCharset UTF-8
PHP UTF-8 설정
php.ini 에서 다음과 같이 수정 한다.
[PHP]
default_charset = "UTF-8"
output_handler = mb_output_handler
[mbstring]
mbstring.language = UTF-8
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
[PHP_MBSTRING]
extension=php_mbstring.dll
MySQL UTF-8 설정
my.cnf 파일을 수정한다.
[client]
default-character-set = utf8
[mysqld]
character-set-client-handshake=FALSE
init_connect="SET collation_connection = utf8_general_ci"
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
코딩시 직접 문자셋 설정하기
HTML 설정
HTML 파일을 UTF-8로 만들어 저장한다.
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
XML 설정
XML 파일을 UTF-8로 만들어 저장한다.
<?xml version="1.0" encoding="UTF-8" ?>
CSS 설정
# css 파일의 맨 위에 지정한다.
@charset "utf-8";
PHP 설정
서버에 지정된 문자셋을 무시한다.
<?php header("Content-Type: text/html; charset=UTF-8"); ?>
Javascript 설정
HTML 문서의 문자셋과 상관없이 인식된다.
<script type="text/javascript" src="path/file.js" charset="utf-8"></script>
상황 예제
1. 서버 설정 부분에 httpd.conf 에서 기본언어설정안함
# AddDefaultCharset UTF-8
2. php.ini 에서 기본언어설정안함
; default_charset = "iso-8859-1"
; default_charset = "utf-8"
3. my.cnf 에서 캐릭터셋 수정
[client]
#password = your_password
default-character-set=utf8
[mysqld]
init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
[mysql]
default-character-set=utf8
위 상태에서 아래 두가지 버전 모두 운영이 가능하다.
- 그누보드4 UTF-8 : 한글 입출력 아무이상없음
- 그누보드4 EUC-KR : 한글 정상출력(phpmyadmin 에서만 한글이 깨짐)
httpd.conf 에서 AddDefaultCharset UTF-8
로 지정할경우는
- EUC-KR 버전은 한글 깨지는데 브라우저에서 인코딩을 지정하면 정상출력
- 새로고침하면 다시 한글깨짐
'리눅스 > Linux 일반' 카테고리의 다른 글
리눅스 표준 입출력 리다이렉션 (7) | 2013.11.17 |
---|---|
리눅스 파일 보안 (0) | 2013.09.13 |
리눅스 파일과 사용 권한 (0) | 2013.09.12 |
리눅스 atime, mtime, ctime - 접근시간, 변경시간, 수정시간 (0) | 2013.09.12 |
리눅스 특수 파일과 장치 (0) | 2013.09.11 |