CI 묻고 답하기

제목 일본어 처리
글쓴이 jayz 작성시각 2009/11/18 03:32:26
댓글 : 11 추천 : 0 스크랩 : 0 조회수 : 27616   RSS

 
PHP/apache/Codeigniter/mysql환경에서 웹페이지를 만들었는데 DB에서 일본어데이터을 뽑아와서 뿌려주려고 하니 글씨가 깨져버리네요 물론 데이타입력도 안되고..
PHP에서 DB로 값 주고 받으려면 어떤 처리가 필요한지 모르겠네요.
여기저기 뒤져봐도 잘 모르겠어서
PHP고수님들의 어드바이스 부탁드립니다. ^^

 다음글 모델 문의드립니다. (3)
 이전글 에러 디스플레이 문제 (6)

댓글

변종원(웅파) / 2009/11/18 09:33:35 / 추천 0
mysql 캐릭터셋이 utf-8인지 확인해보시구요.
혹시 CI의 파일 캐릭터셋도 확인해보세요.
두가지 캐릭터셋을 알아야 제대로 답변 드릴 수 있습니다.
ci세상 / 2009/11/18 09:35:38 / 추천 0
emc / 2009/11/18 10:08:12 / 추천 0
utf-8에서 일본어 문제없이 출력됩니다.
헛발이 / 2009/11/18 10:21:02 / 추천 0

하나로 동일 하게 만들어야 해요... utf-8이거나. sjis거나 상관 없이 PHP와 DB 그리고 문서의 엔코딩등 모두 하나로만 마춰 주면 문제 없이 나올거에요..
아마도 제 생각엔 서로 맞지 않는 언어코드를 사용하고 계셔서 그럴거에요..

1. PHP를 만든 문서의 엔코딩을 살펴 보시고
2. 웹페이지의 META테그에 언어가 뭘로 되어 있는지 살펴 보시고
3. DB의 문자코드가 뭘로 되어 있는지 살펴 보세요~

jayz / 2009/11/18 13:47:23 / 추천 0

일단 화면은 utf8형식으로 일본어는 문제없이 출력되고 있습니다만
DB에서 뽑아오는 값만 ??<- 이렇게 깨져서 나옵니다.

DB캐릭터셋은 디폴트로 밑에 처럼 되있는데
character_set_client -> utf8
character_set_connection -> utf8
character_set_database -> latin1
character_set_filesystem -> binary
character_set_results -> utf8
character_set_server -> latin1
character_set_system -> utf8
character_sets_dir \xampp\mysql\share\charsets\

요렇게 ->set character_set_database = utf8
설정치를 바꿔주려고 해도 바르게 실행됬다고는 나오는데
정작 설정치는 안바뀌어서

그냥 테이블을 디폴트 utf8로 작성해보니까
일본어 직접입력은 문제없이 되길래 화면에 뿌려보니까
 ??<- 이렇게 깨져서 나옵니다.

그리고 헛발이님이 PHP를 만든 문서의 엔코딩을 살펴 보라고 하셨는데
노트패드에서 utf8로 php파일 열어서 깨진글자 없이 잘 나오면 되는건가요?
확인방법을 잘 몰라서..

제 생각에는 DB에서 값을 가져올때 부터 깨져서 오는 것 같은데 DB캐릭터셋변경이 안되서
이것 저것 찾아서 해보는데 잘 안되네요. 흑..

변종원(웅파) / 2009/11/18 14:01:59 / 추천 0
모델에서 쿼리 불러오기전에

$this->db->query("SET NAMES utf-8");

선언하고 화면출력해보세요.
헛발이 / 2009/11/18 14:14:33 / 추천 0
제 생각엔 일단 근본적인것부터 확인 해 가면서 찾아 봐야 할듯 싶네요..

1. 실제 DB에는 안 깨지고 데이터가 잘 들어가 있는지...확인
2. 안깨지고 DB에 있다면 인코딩이 뭘로 되어 잇는지요? utf-8?
3. 현재 O/S가 일본어인지요? 현재 사용중인 에디터나 기타 등등이 한국어인지 일본어인지요?
4. そのまま읽어서 뿌려보면 ??이렇게 나오는지요? 아님 다른 외계어로 나오는지요?

저도 현재 일본어작업중인데 별 문제 없이 잘 나오거든요...ㅡ.ㅡ;;
ci세상 / 2009/11/18 14:31:11 / 추천 0

테스트 디비 하나 오픈해 주세요 ^^ 들어가서 봐드리는것이 더 좋아보이죠?^^

양승현 / 2009/11/18 15:44:09 / 추천 0
mysql> 딴에서 명령으로 바꾸기보다 my.inf파일에 설정을 해보세요.

디비,테이블,php파일 인코딩도 utf-8로.
jayz / 2009/11/18 17:47:47 / 추천 0

위엣글 접니다 ㅎㅎ
 

ci세상 / 2009/11/18 18:19:30 / 추천 0
0으로 찍히는것은 ~~ 글쓰기시 로그아웃 되어 있어서 보이네요^^

set을 찍어서 제대로 나온다면 디비 데이터가 utf로 저장이 안되어 있는것입니다.^^