CI 묻고 답하기

제목 데이터베이스 한글이 출력안되는현상
글쓴이 알프ㅡ 작성시각 2011/07/13 18:45:09
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 19654   RSS

DB도 UTF-8 이고 PHP파일도 UTF-8 인데 DB출력시에
ÅÇ1
 
ÅÇ2
 
ÅÇ3
 

메타태그도 utf-8맞구여 브라우저는 익스플로러9이고
컨트롤러 코드는
public function index()
 {
  $this->load->database();
        $data['query']=$this->db->get('menubar');
        $this->load->view('welcome_message',$data);
 }
이게다고
뷰 코드는
<? foreach($query->result() as $row): ?>
<p><?=$row->tab?></p>
<? endforeach; ?>
이부분이 출력부분이고 특이한점없는데도그럼

그냥 db에서 가져오지않고 출력하면 정상적으로되거든요
그래서 db문제일것같은데 뭐가뭔지..

 다음글 xss_clean 이 멀쩡한 태그를 짤라낼 경우... (2)
 이전글 초보질문 (3)

댓글

변종원(웅파) / 2011/07/13 22:09:01 / 추천 0
insert는 db에 직접 하신건가요? 아니면 insert 프로그램을 통해서?

db 내용을 직접 보셨을때도 저렇게 깨져있다면 들어갈때 다른 캐릭터셋으로 들어간거구요.
일단 프로그램을 통하지말고 db에 직접 접근해서 내용을 보시기 바랍니다.

insert 페이지의 캐릭터셋도 보시구요.
알프ㅡ / 2011/07/14 11:43:00 / 추천 0

db 에 명령프롬프트로 직접접근해서 보면 정상적으로 보이는데 이상하네여

헛발이 / 2011/07/14 12:43:53 / 추천 0
참으로 신기하군요..

디비설정도 utf고
코드이그나이터의 설정도utf고
문서도 utf로 저장되었고
매타테그도 utf인데

글씨가 깨지는건 있을수 없는 일이군요...

혹시 등잔밑이 어둡다고 아마 아주 쉬운곳에 답이 있을수도 있겠죠...

천천히 하나씩 점검 해 보세요~

1. 코드이그나이터 말고 직접 PHP로 접속해서 확인 해보세요~
$connect = mysql_connect('호스트명','유저명','비밀번호') || die("DB Connect error");
mysql_query("set names utf8");
mysql_select_db('디비명');

$SQL="select 원하는필드하나 form 테이블명 where id=1";
$RS = mysql_query($SQL);

echo mysql_result($RS,0,0);
코드가 좀 우숩지만 일단 이렇게 코드이그나이터 말고 직접 한번 불러 보세요.. 그래서 글씨가 안 깨지면 코드이그나이터의 문제일수 있고 그래도 깨진다면 그건 DB에 들어가 있는 것이 문제라고 볼수 있을거에요..


2. 안깨진다면 코드이그나이터를 새로 다시 설치 해 보세요
테스트로 해 보시는것이라면 새로 다시 설치 해서 정상적(?)인 상태에서 다시 시도 해 보시는것이 좋을듯 싶어요.  안되는것 가지고 계속 끙끙대면 머리만 아프죠...
(혹시 누군가 짜 놓은 것을 가지고 테스트 하시는건 아니시죠? 그러다면 그쪽 시스템에 맞게 뭔가 설정되어 있을수 있으므로 글씨가 어디서 깨지는지 찾기가 힘들수 있죠...)


3. 그래도 그렇다면 설정에 문제가 있는것이겠죠..

app / config / database.php에서
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
이렇게 되어 있는지 확인 하시고...
출력하시는 페이지의 문서에
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
이것이 있는지 확인 하시고...

코드이그나이터 소스의 문서가 저장시에 utf로 저장되었는지도 확인 하세요~

그렇게 해도 안되면 한번 소스를 압축해서 올려 보세요~ DB의 내용하고... 그럼 고수님들이 한번 설치해서 정말 깨지나 안 깨지나 확인 해 주실지 모르잖아요~ ^^;