개발 Q&A

제목 mysql한글 입력
글쓴이 뚜기80 작성시각 2014/01/06 23:50:46
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 18850   RSS
리눅스 환경 myslq db 사용 하고 있습니다.
database.php 설정
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE

mysql 설정
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8

DB 설정 테이블도 utf8설정


metadata 설정
<title>SKT SMSC_EMS</title>
<meta charset="utf8"/>


에디터는 vi를 써서 개발 중인데 
웹을 통해 한글 데이터를 insert를 해서 display를 할때는 화면에 한글이 제대로 표시되는데

mysql을 실제 select 해보면 한글이 깨져서 들어가 있습니다.
어디를 더 체크해 봐야하는지요 고수님들 아시는분 있으시면 알려주시면
감사하겠습니다. 
 다음글 문자셋 질문드립니다.. (2)
 이전글 PHP 시간 계산 질문입니다. (3)

댓글

변종원(웅파) / 2014/01/07 00:02:48 / 추천 0
프로그램 파일 캐릭터셋 보세요.

select는 콘솔에서? 아니면 gui툴에서 한건가요?

게시판 이동합니다.
뚜기80 / 2014/01/07 00:20:08 / 추천 0

아래 화면처럼 데이터를 웹상에서 add 하면 데이터는 한글이 잘 보여지는데

직접 mysql에서 쿼리해서 값을 구해보면 깨져서 들어가 있습니다.

그래서 id키값으로 수정이나 삭제를 하려고 하면 실행이 되지 않습니다.

/ 2014/01/07 09:51:08 / 추천 0
 //뚜기80

 mysql접속할때도 캐릭터셋 설정하는게 있던데 my.cnf던가 ? 
이거 클라이언트 설정도 살펴보셔요.. 제생각엔 이 설정이 문제일거 같은데..
http://blog.dasom.pe.kr/35
들국화 / 2014/01/07 10:13:18 / 추천 0
console 에서 하시는거 같은데...

보는곳(Client)도 캐릭터셋을 맞춰야 합니다. 
거친보노보노 / 2014/01/08 10:06:11 / 추천 0
혹시 테이블 생성할때 케릭터 셋 설정을 하셨는지요

혹시나 해서 댓글 달아봅니다.

 - mysql> ALTER TABLE table_name convert to charset utf8;
뚜기80 / 2014/01/08 14:37:44 / 추천 0

어제 확인 해본 결과 DB에는 정확하게 UTF-8로 들어가져 있습니다
HEX 데이터로 변환하여 => UTF8로 변환해보니 정확하게 한글로 DB에 들어가져 있는걸 확인했습니다.

소스 쪽에서 다음과 같은 부분에서 다음과 같이 되어 있던 부분을
$this->data['inf'] = $this->accountmanage_model->get_personal($uid);

이런 식으로 소스 어딘가에서 url를 encode 해준는거 같은데
그거까지는 확인 못하고 다음과 같이 해결 하였습니다.
$this->data['inf'] = $this->accountmanage_model->get_personal(urldecode($uid));

한가지 다른 문제는 수정 버튼을 눌렀을 때
기존 데이터에 들어가 있던 데이터중 한글이 깨져서 보이는 문제는
view를 불러 오기 전에 header_base.php 부분에서 html metadata를 euc-kr로 설정해 놔서 생기는

문제 였습니다.
도움을 주셔서 다들 감사합니다.
 

변종원(웅파) / 2014/01/08 15:09:12 / 추천 0
$uid가 주소에서 바로 가져오는가 봅니다. 

요즘 똑똑한(?) 브라우저들이 한글을 urlencode 해서 넘겨줍니다. ^^;