데이터베이스의 문자셋이 다른것을 지원하는 방법. 정보
데이터베이스의 문자셋이 다른것을 지원하는 방법.본문
데이터베이스의 문자셋이 UTF-8 이나 EUC-KR 이 아닌경우가 있습니다.
최초에 데이터베이스를 만들때, 상황이 그대로 이어지고 있는 경우이지요.
해당 프로그램은 lib/common.lib.php 에 있습니다.
---- lib/common.lib.php ----
// DB 연결
function sql_connect($host, $user, $pass)
{
global $g4;
if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
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 ");
else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
return @mysql_select_db($db, $connect);
}
return 전에 @mysql_query(" set names latin1"); 과 같이 넣어주어도 되지만, 범용성을 높이기 위해서 config 에 DB 용 문자셋은 따로 지정하는 것이 어떨까 싶습니다.
config.php 에서
$g4['charset'] = "euc-kr";
$g4['db_charset'] = "latin1";
와 같이 $g4['db_charset'] = "latin1"; 을 추가하고 common.lib.php 는 아래와 같이 수정합니다.
차기 버전에는 이렇게 적용되었으면 합니다.
---- lib/common.lib.php ----
// DB 연결
function sql_connect($host, $user, $pass)
{
global $g4;
// if (strtolower($g4['charset']) == 'utf-8') @mysql_query(" set names utf8 ");
// else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
@mysql_query(" set names ".$g4['db_charset']);
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 ");
// else if (strtolower($g4['charset']) == 'euc-kr') @mysql_query(" set names euckr ");
@mysql_query(" set names ".$g4['db_charset']);
return @mysql_select_db($db, $connect);
}
추천
3
3
댓글 2개

좋네요. 관리자님 이거 하나 추가하심이 어떤실련지.. ^^

그리고 설치시 선택하게 해주면 문제없겠네요