아파치 웹서버 설정파일에 문자셋을 지정할 수 있다.
하지만 HTML 문서등을 작성할때 문자셋을 지정하면 이 값이 다른 값보다 우선시된다.
php 설정에서도 기본 문자셋을 지정할 수 있다.
서버에서 문자셋 설정하기
Apache 웹서버 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 설정
[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 버전은 한글 깨지는데 브라우저에서 인코딩을 지정하면 정상출력,
새로고침하면 다시 한글깨짐. 이렇게 되더군요...
참고하시라고 올려드립니다..