PHP, MySQL 간 UTF-8 한글 깨짐 현상 해결 > php

본문 바로가기
사이트 내 전체검색

php

PHP, MySQL 간 UTF-8 한글 깨짐 현상 해결

페이지 정보

작성자 서방님 댓글 0건 조회 243회 작성일 16-02-04 17:35

본문

MySQL 5.3 기준입니다. 5.5 이상에서는 테스트 되지 않았습니다. 5.5에서 두번째 방법은 확실히 안되네요.


간혹 웹 서버, 혹은 DB 서버 구축시 PHP랑 MySQL의 인코딩 문제 때문에 귀찮을 때가 있다. 분명 둘 다 UTF-8 (유니코드)로 설정을 잘한 것 같은데, 한글 인코딩 문제가 발생하기 때문이다. 예를 들어 분명 웹에서는 잘 나타나는데 실제 DB를 확인해보면 깨진 한글이 입력되어 있거나 그렇다.

이를 해결하기 위해 2가지 정도의 방법이 있다.


1. PHP에서 DB접속시 강제 인코딩 설정

이 방법은 DB Connection을 하는 각 페이지 마다 강제 인코딩 설정을 해주는 방법이다. PHP 파일에서 DB 연결하고 다음 쿼리를 날려주면 된다.

set names utf8;

위 방법으로 안된다면 추가로 다음 쿼리도 날려줘보자.

set session character_set_connection=utf8;

set session character_set_results=utf8;

set session character_set_client=utf8;

이 정도 하면 대부분의 PHP, MySQL간 한글 인코딩 문제가 해결된다.


2. 서버의 /etc/my.cnf 수정

그런데 DB 연결 때 마다 위 쿼리를 전송하는 것은 사실 DB를 관리하는 입장에서는 좀 부담이 있다. /etc/my.cnf 에 다음 구문을 추가 한뒤 mysqld 를 재시작 한다.


[mysqld]

collation-server=utf8_unicode_ci

default-character-set=utf8

character-set-server=utf8

init_connect=set collation_connection=utf8_unicode_ci

init_connect=set names utf8


[client]

default-character-set=utf8


[mysql]

default-character-set=utf8


PHP, MySQL 한글 사용시 이정도는 초기에 설정해 놓는 편이 좋을 듯하다.

댓글목록

등록된 댓글이 없습니다.

Total 612건 18 페이지
게시물 검색

회원로그인

접속자집계

오늘
150
어제
163
최대
1,347
전체
154,684
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.