WEB언어/PHP

php + mysql 웹 페이지 한글 깨짐 현상 처리

saltdoll 2014. 10. 22. 15:45
반응형

웹에서 한글 깨짐 현상이 발생 할때.


소스에서 수정하기

1. 인코딩 방식을 통일 : 코딩 페이지 UTF-8로 변경


2. iconv() 사용 : iconv("현재 인코딩", "바꿀 인코딩", 바꿀 스티링)

   $emp = iconv('uft8', 'euckr', $str );



3. mysql 입출력 인코딩 지정 ( 나의 경우 정답~~!!)

php.ini 나 my.cnf 에서 수정을 하면 될 수 있을 것 같은데.

귀찮아서 다음과 같이 session char_set_ 명령을 실행하는 걸로 마무리 한다.

<?php // query.php

require_once 'login.php';

$db_server = mysql_connect($db_hostname, $db_username, $db_password); 


if(!$db_server) die ("Unable to connect to MySQL :" . mysql_error());


mysql_select_db($db_database) or die("Unable to select Database : " . mysql_error());


mysql_query("set session character_set_connection=utf8;");

mysql_query("set session character_set_results=utf8;");

mysql_query("set session character_set_client=utf8;");


$query = "SELECT * FROM temptest" ; 

$result = mysql_query($query) ; 


if(!$result ) die ( "Database access failed  : "  . mysql_error());


$rows = (mysql_num_rows($result)); 


for($j = 0 ; $j < 5 ; ++$j){

$temp = mysql_result($result, $j, 't2'); 

print("$temp <br>"); 

}


참고: 

php, mysql 웹에서의 한글 깨짐현상

php mysql의 한글 깨짐 문제 해결   (MySQL DB관점에서 해결)

Change MySQL default character set to UTF-8 in my.cnf



서버에서 설정하기

역시, php.ini와 my.cnf 설정만 수정하면 utf-8 한글 깨짐 문제는 해결 되었다.


php.ini 기본 문자셋 설정 (/etc/php.ini)

;default_charset = "iso-8859-1"

default_charset = "utf-8"


my.cnf 기본 문자셋 설정 ( /etc/my.cnf )


[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0


# utf-8 setting (djlee)

default-character-set=utf8

default-collation=utf8-general_ci

init_connect=set collation_connection=utf8_general_ci

init_connect=set names utf8

character-set-server=utf8

collation-server=utf8_general_ci

character-set-client-handshake=TRUE


[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid                                      



반응형
도움이 되셨다면 하트모양의 "♡ 공감"을 눌러주시면 큰 격려가 됩니다.
(로그인하지 않으셔도 가능)