728x90

문자셋 설정하는 방법을 한데 모아 보았습니다. 우선순위에 유념하여 설정하길 바랍니다.

문자셋 우선순위

아파치 웹서버 설정파일에 문자셋을 지정할 수 있다. 하지만 HTML 문서등을 작성할때 문자셋을 지정하면 이 값이 다른 값보다 우선시된다. php 설정에서도 기본 문자셋을 지정할 수 있다.

서버에서 문자셋 설정하기

Apache 웹서버 UTF-8 설정

httpd.conf 에 추가하면 되는데 리눅스 배포판 별로 다르다.

APACHE CONFIGURATION
AddDefaultCharset UTF-8 

PHP UTF-8 설정

php.ini 에서 다음과 같이 수정 한다.

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 파일을 수정한다.

INI
[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로 만들어 저장한다.

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

XML 설정

XML 파일을 UTF-8로 만들어 저장한다.

CSS
<?xml version="1.0" encoding="UTF-8" ?>

CSS 설정

# css 파일의 맨 위에 지정한다.

CSS
@charset "utf-8";

PHP 설정

서버에 지정된 문자셋을 무시한다.

PHP
<?php  header("Content-Type: text/html; charset=UTF-8"); ?>

Javascript 설정

HTML 문서의 문자셋과 상관없이 인식된다.

HTML
<script type="text/javascript" src="path/file.js" charset="utf-8"></script>

상황 예제

출처 :https://lael.be/116

1. 서버 설정 부분에 httpd.conf 에서 기본언어설정안함

APACHE CONFIGURATION
# AddDefaultCharset UTF-8 

2. php.ini 에서 기본언어설정안함

INI
; default_charset = "iso-8859-1" 
; default_charset = "utf-8" 

3. my.cnf 에서 캐릭터셋 수정

INI
[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 버전은 한글 깨지는데 브라우저에서 인코딩을 지정하면 정상출력
  • 새로고침하면 다시 한글깨짐



출처: http://webdir.tistory.com/258 [WEBDIR]

출처: http://webdir.tistory.com/258 [WEBDIR]

'WEB' 카테고리의 다른 글

How to increase maximum POST variable in PHP?  (0) 2018.06.01
HTML STYLE CSS 인쇄시 페이지 기본 여백 설정하기.  (0) 2018.05.29
PHP로 xml과 json 파싱  (0) 2018.05.17
PHP Simple HTML DOM Parser  (0) 2018.05.17
PHP 메모리 부족  (0) 2018.05.14

+ Recent posts