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