잘 되다가도 간혹 안되기도 하는 한글깨짐
그누보드를 사용하는 경우, 서버의 캐릭터셑이 utf-8 로 되어 있고 mysql 캐릭터셑도 utf-8로 되어있는데도 한글이 깨지는 경우가 발생하기도 합니다
제일 먼저 확인할 것은 mysql 캐릭터셑
SELECT schema_name , default_character_set_name FROM information_schema.schemata
mysql 에 접속한 후에 위와 같이 쿼리를 실행하면 해당 데이터베이스의 캐릭터셑을 확인할 수 있습니다
두번째로 확인할 것은 HTML 코드내의 캐릭터셑 설정
HTML 코드내에 meta 태그를 이용하여 캐릭터셑을 설정하는데요, 그게 제대로 되어있는지 확인합니다
보통 아래와 같이 설정하게 됩니다.
<!doctype html>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
</head>
마지막으로 확인할 것은 mysql connection
두번째 까지 확인을 했는데요 여전히 한글이 깨진다면, HTML 코드내에서 mysql 에 접속할 때 오류가 생기는 경우를 확인해 봐야 됩니다.
보통, 아래와 같이 데이터베이스에 연결하는데요, 연결 자체가 utf-8 이 아니라 euc-kr로 접속이 될 수도 있습니다.
<?
$dbconn = mysqli_connect("localhost","유저명","비밀번호","DB명") or die("Database Connection Error");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
이를 확실하게 하기위하여, 연결 후에 다음과 같이 쿼리를 실행하면 확실하게 utf-8로 mysql connection이 설정되게 됩니다
<?
$dbconn = mysqli_connect("localhost","유저명","비밀번호","DB명") or die("Database Connection Error");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($dbconn,"set session character_set_connection=utf8;");
mysqli_query($dbconn,"set session character_set_results=utf8;");
mysqli_query($dbconn,"set session character_set_client=utf8;");
?>
참고로 저 동해둘리가 직접 운영하는 '성공하는 중이다' 카페를 소개드립니다.
각자의 분야에서 성공을 향해 가는 과정에서 힘이되는 이야기, 힘이되는 사진, 성공스토리, 실패스토리 등을 나누고자 합니다. 많은 참여 부탁드려요
댓글 영역