디비 백업과 인코딩 문제
현재 mysql 5 utf8 의 환경에서 그누보드 euc-kr 버전을 쓰고 있습니다. (외국 호스팅 서비스)
사이트 자체내에는 전혀 문제가 없지만, phpmyadmin으로 디비 내용을 보면 글씨가 다 깨져서 나옵니다.
문제는 현재 euc-kr버전의 사이트를 utf-8환경으로 바꾸려는데요,
html 파일을 <meta http-equiv="content-type" content="text/html; charset=utf-8"> 로 설정을 해도 디비에 있는 내용들이 다 깨져서 나옵니다.
이럴경우엔 어떻게 해야하나요?
phpmyadmin에서 볼때 다 깨져서 나오는 디비 내용을 정상적으로 보이게 할수는 없나요?
도와주세요.
사이트 자체내에는 전혀 문제가 없지만, phpmyadmin으로 디비 내용을 보면 글씨가 다 깨져서 나옵니다.
문제는 현재 euc-kr버전의 사이트를 utf-8환경으로 바꾸려는데요,
html 파일을 <meta http-equiv="content-type" content="text/html; charset=utf-8"> 로 설정을 해도 디비에 있는 내용들이 다 깨져서 나옵니다.
이럴경우엔 어떻게 해야하나요?
phpmyadmin에서 볼때 다 깨져서 나오는 디비 내용을 정상적으로 보이게 할수는 없나요?
도와주세요.
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 3개
Collation이 latin1으로 되어있어 db가 깨져보이고 사이트는 정상출력 되는경우 해결방법입니다
백업 받으실때
mysqldump --default-character-set=latin1 -u -p db명 > test.sql 후 파일열어서 사용latin1 을 euckr로 변경후 다시 디비에 넣으시면 정상 작동될겁니다.
혹시 같은 서버에서 작업하실거면 db생성시에
CREATE DATABASE `db명` DEFAULT CHARACTER SET euckr COLLATE euckr_korean_ci;
phpmyadmin으로는 어떻게 방법이 없을까요?
다른데로 utf-8 로 이전했는데요
php 버전이랑 mysql 버전이 달라서
언어셋은 정상임에도 불구하고 자꾸 euc_kr 로 되서 깨지는경우가 있었는데요.
이런경우 이렇게 해결했습니다.
lib폴더안에 common.lib.php 파일이 있는데요
이파일안에서
// DB 연결
function sql_connect($host, $user, $pass)
{
global $g4;
return @mysql_connect($host, $user, $pass);
}
// DB 선택
function sql_select_db($db, $connect)
{
global $g4;
return @mysql_select_db($db, $connect);
}
이부분을 아래와 같이
// DB 연결
function sql_connect($host, $user, $pass)
{
global $g4;
if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
return @mysql_connect($host, $user, $pass);
}
// DB 선택
function sql_select_db($db, $connect)
{
global $g4;
if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
return @mysql_select_db($db, $connect);
}
이렇게 변경을 하니 정상적으로 웹페이지 출력이 되는것이었습니다.
일부 php 버전에서 쿼리 셋네임을 정해줘야 정상적으로 출력된다고 하니
if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
이부분을 적당히 자신의 언어셋에 맞춰 수정해 사용해 보세요.