게시판 복사시 한글이 제목과 내용에서 ????로 뜨는 문제..
본문
게시판 생성으로 하면 한글도 정상적으로 보입니다.
근데 게시판 복사기능만하면 리스트와 뷰에서 새글을 썼을때 한글이 모두 ????로바뀌어버리고
구조+데이터를 복사해도
모두 ??????로 바뀌어버립니다.
게시판생성할땐 정상인것보니 게시판 스킨문제는 아닌것 같은데.
뭐가 문제인지 모르겠습니다...어제부터 검색해도 관련내용을 찾기가 힘듭니다..
추가 데이터 복사시 DB에서 테이블이 데이터정렬이 UTF8로 복사가안되고 latin1_swedish_ci라는 형식으로 복사가됩니다
답변 6
아 죄송요 게시글 복사로 알았네요...
/adm/board_copy_update.php 파일 인코딩 확인해보시고 UTF-8 인코딩 맞다면
해당 파일 여셔서 게시판복사시 테이블이 생성되는 쿼리문이 있을꺼에요...
해당부분에 쿼리실행전에 echo 로 쿼리문 찍어보세요..
ex)
// 게시판 테이블 생성
$sql = get_table_define($g5['write_prefix'] . $bo_table);
$sql = str_replace($g5['write_prefix'] . $bo_table, $g5['write_prefix'] . $target_table, $sql);
echo $sql;exit;
sql_query($sql, false);
출력된 쿼리문 하단에 DEFAULT CHARSET=utf8 이 나오는지 확인해보세요....
/bbs/move_update.php 파일의 인코딩이 utf-8인지 확인해보세요..
CREATE TABLE g4_write_cable ( wr_id int(11) NOT NULL auto_increment, wr_num int(11) DEFAULT '0' NOT NULL, wr_reply varchar(10) NOT NULL, wr_parent int(11) DEFAULT '0' NOT NULL, wr_is_comment tinyint(4) DEFAULT '0' NOT NULL, wr_comment int(11) DEFAULT '0' NOT NULL, wr_comment_reply varchar(5) NOT NULL, ca_name varchar(255) NOT NULL, wr_option set('html1','html2','secret','mail') NOT NULL, wr_link1 text NOT NULL, wr_link2 text NOT NULL, wr_link1_hit int(11) DEFAULT '0' NOT NULL, wr_link2_hit int(11) DEFAULT '0' NOT NULL, wr_trackback varchar(255) NOT NULL, wr_hit int(11) DEFAULT '0' NOT NULL, wr_good int(11) DEFAULT '0' NOT NULL, wr_nogood int(11) DEFAULT '0' NOT NULL, mb_id varchar(255) NOT NULL, wr_password varchar(255) NOT NULL, wr_name varchar(255) NOT NULL, wr_email varchar(255) NOT NULL, wr_homepage varchar(255) NOT NULL, wr_datetime datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, wr_last varchar(19) NOT NULL, wr_ip varchar(255) NOT NULL, wr_1 varchar(255) NOT NULL, wr_2 varchar(255) NOT NULL, wr_3 varchar(255) NOT NULL, wr_4 varchar(255) NOT NULL, wr_5 varchar(255) NOT NULL, wr_6 varchar(255) NOT NULL, wr_7 varchar(255) NOT NULL, wr_8 varchar(255) NOT NULL, wr_9 varchar(255) NOT NULL, wr_10 varchar(255) NOT NULL, PRIMARY KEY (wr_id), KEY wr_num_reply_parent (wr_num, wr_reply, wr_parent), KEY wr_is_comment (wr_is_comment, wr_id) )
일단 G5가 아니고 G4부분이고
하단에 DEFAULT CHARSET=utf8 문구는 아예 표시되지 않습니다
CREATE TABLE `__TABLE_NAME__` ( `wr_id` int(11) NOT NULL AUTO_INCREMENT, `wr_num` int(11) NOT NULL DEFAULT '0', `wr_reply` varchar(10) NOT NULL DEFAULT '', `wr_parent` int(11) NOT NULL DEFAULT '0', `wr_is_comment` tinyint(4) NOT NULL DEFAULT '0', `wr_comment` int(11) NOT NULL DEFAULT '0', `wr_comment_reply` varchar(5) NOT NULL DEFAULT '', `ca_name` varchar(255) NOT NULL DEFAULT '', `wr_option` set('html1','html2','secret','mail') NOT NULL DEFAULT '', `wr_subject` varchar(255) NOT NULL DEFAULT '', `wr_content` text NOT NULL, `wr_link1` text NOT NULL, `wr_link2` text NOT NULL, `wr_link1_hit` int(11) NOT NULL DEFAULT '0', `wr_link2_hit` int(11) NOT NULL DEFAULT '0', `wr_trackback` varchar(255) NOT NULL DEFAULT '', `wr_hit` int(11) NOT NULL DEFAULT '0', `wr_good` int(11) NOT NULL DEFAULT '0', `wr_nogood` int(11) NOT NULL DEFAULT '0', `mb_id` varchar(255) NOT NULL DEFAULT '', `wr_password` varchar(255) NOT NULL DEFAULT '', `wr_name` varchar(255) NOT NULL DEFAULT '', `wr_email` varchar(255) NOT NULL DEFAULT '', `wr_homepage` varchar(255) NOT NULL DEFAULT '', `wr_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `wr_last` varchar(19) NOT NULL DEFAULT '', `wr_ip` varchar(255) NOT NULL DEFAULT '', `wr_1` varchar(255) NOT NULL DEFAULT '', `wr_2` varchar(255) NOT NULL DEFAULT '', `wr_3` varchar(255) NOT NULL DEFAULT '', `wr_4` varchar(255) NOT NULL DEFAULT '', `wr_5` varchar(255) NOT NULL DEFAULT '', `wr_6` varchar(255) NOT NULL DEFAULT '', `wr_7` varchar(255) NOT NULL DEFAULT '', `wr_8` varchar(255) NOT NULL DEFAULT '', `wr_9` varchar(255) NOT NULL DEFAULT '', `wr_10` varchar(255) NOT NULL DEFAULT '', PRIMARY KEY (`wr_id`), KEY `wr_num_reply_parent` (`wr_num`,`wr_reply`,`wr_parent`), KEY `wr_is_comment` (`wr_is_comment`,`wr_id`) ) DEFAULT CHARSET=utf8;
게시글생성인 이부분이 나옵니다
보니 게시판생성에는 $file = file("./sql_write.sql");라는 부분이있군요
근데 게시판복사는 그런것이 없습니다.
sql_write.sql 파일을 보니 DEFAULT가 utf8로 잘잡혀있습니다.
근데 게시판복사에는 sql문을 복사해오는것이 아닌데 어떻게
게시판 생성것의 sql문을 적용을 하는지요?
// 게시판 테이블 생성
$file = file("./sql_write.sql");
$sql = implode($file, "\n");
$create_table = $g4[write_prefix] . $bo_table;
$sql = str_replace($g4[write_prefix] . $bo_table, $g4[write_prefix] . $target_table, $sql);
sql_query($sql);
이런식으로 변경해봤으나 안됩니다 ㅜㅜ
안된다기보다 복사는되는데 ???????로 나오는현상이 같습니다.
대단하십니다
2번의 방법으로 했더니 완벽하게 복사가 잘됩니다
감사합니다.
제가 SQL언어에 대한 이해가 부족해서 쉽게 수정하지 못한것 같습니다.
밥까지 떠먹여달라고 징징대서 죄송합니다.