http://happyjung.com/gnuboard/bbs/board.php?bo_table=lecture&wr_id=405



아래 내용은 서버의  mysql 4.1 이후  latin1 으로 설치된 서버에서  
utf8 디비를 가지고 업로드 해서 사용해야 할 경우 아래와 같이 진행하시면 정상 사용하실수 있습니다.

euckr 로 사용을 원하시는 경우 아래 내용에서   utf8  –> euckr   로 수정해서 적용하시면 됩니다.


수정파일은 모두 5개
/common.php
/adm/sql_write.sql
/install/sql_gnuboard4.sql
/install/install_db.php
/lib/common.lib.php


1. 그누보드/common.php 파일의  10라인
if (!isset($set_time_limit)) $set_time_limit = 0;    // 아래에 추가
@mysql_query("set names utf8");   // 한글문제해결을위하여 추가



2. 게시판생성   ::   그누보드/adm/sql_write.sql 파일에서
  KEY `wr_is_comment` (`wr_is_comment`,`wr_id`)
);

이 부분을 아래와 같이 수정 합니다.

  KEY `wr_is_comment` (`wr_is_comment`,`wr_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;



3. 그누보드/lib/common.lib.php (1) 파일의  1016라인
2008.10.09  >>  4.30.00 사용자는 패스

// DB 연결
function sql_connect($host, $user, $pass)
{
    return @mysql_connect($host, $user, $pass);
}


// DB 선택
function sql_select_db($db, $connect)
{
    return @mysql_select_db($db, $connect);
}

이 부분을 아래와 같이 수정 합니다.


// DB 연결
function sql_connect($host, $user, $pass)
{
    @mysql_query("set names utf8"); // 한글문제해결을위하여 추가
    return @mysql_connect($host, $user, $pass);
}


// DB 선택
function sql_select_db($db, $connect)
{
    @mysql_query("set names utf8"); // 한글문제해결을위하여 추가
    return @mysql_select_db($db, $connect);
}



4.30.00 은 아래와 같이 변경되었습니다.

// 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);
}




4. 그누보드/lib/common.lib.php (2) 관리자페이지에서  게시판 복제할때  ::
// 2008-02-02 추가  (도움주신분 :  @골뱅이님)
$schema_create .= $crlf . ')    를 검색해서   1161 라인

    $schema_create .= $crlf . ')';

    $schema_create .= $crlf . ') DEFAULT CHARSET=utf8';
로 수정



5. 인스톨 설정(1)   ::   그누보드/install/sql_gnuboard4.sql  파일의 각 테이블 생성 DDL의 마지막에
) type=MyISAM;    또는   );

이 부분을

) ENGINE=MyISAM DEFAULT CHARSET=utf8;




6. 인스톨 설정(2)   ::   그누보드/install/install_db.php 파일의  34라인
2008.10.09  >>  4.30.00 사용자는 패스
$dblink = @mysql_connect($mysql_host, $mysql_user, $mysql_pass);   // 아래에 추가
@mysql_query("set names utf8");   // 한글문제해결을위하여 추가
if (!$dblink) {
    echo "<meta http-equiv='content-type' content='text/html; charset=$g4[charset]'>";
    echo "<script language='Javascript'>alert('MySQL Host, User, Password 를 확인해 주십시오.');history.back();</script>";
    exit;
}


$select_db = @mysql_select_db($mysql_db, $dblink);
if (!$select_db) {
    echo "<meta http-equiv='content-type' content='text/html; charset=$g4[charset]'>";
    echo "<script language='Javascript'>alert('MySQL DB 를 확인해 주십시오.');history.back();</script>";
    exit;
}


4.30.00 에서는 아래와 같이 변경되었습니다.

if (strtolower($g4[charset]) == 'utf-8') @mysql_query("set names utf8");
else if (strtolower($g4[charset]) == 'euc-kr') @mysql_query("set names euckr");
$dblink = @mysql_connect($mysql_host, $mysql_user, $mysql_pass);
if (!$dblink) {
    echo "<meta http-equiv='content-type' content='text/html; charset=$g4[charset]'>";
    echo "<script language='Javascript'>alert('MySQL Host, User, Password 를 확인해 주십시오.');history.back();</script>";
    exit;
}


if (strtolower($g4[charset]) == 'utf-8') @mysql_query("set names utf8");
else if (strtolower($g4[charset]) == 'euc-kr') @mysql_query("set names euckr");
$select_db = @mysql_select_db($mysql_db, $dblink);
if (!$select_db) {
    echo "<meta http-equiv='content-type' content='text/html; charset=$g4[charset]'>";
    echo "<script language='Javascript'>alert('MySQL DB 를 확인해 주십시오.');history.back();</script>";
    exit;
}

참고자료
http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=2497

[그누보드] [mysql] latin1 디비에서 utf8 (euc-kr) 데이타 사용하기

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다