Forums
여러 고수님들 추석은 잘 쇠셨습니까? 해를 거듭할 수록 명절이 겁이 납니다.... :D
지난번 여러 분들의 도움으로 무사히 mysql에 입력하는 php code를 작성하였습니다.
다시 한번 감사드립니다.
그런데, 이상하게 mysql에서 조회를 하면 깨져 보입니다.
(그림을 올리려고 했더니 안되는 군요... 방법이 없을까요???)
Debian Etch구요... 처음 mysql에 로그인을 하여 자료를 조회해 보면 한글은 ???? 이렇게 보이구요...
set names utf8;로 하면 phpmyadmin에서 작성한 것만 한글이 정상으로 보이고 나머지,
리눅스에서 입력을 했던 윈도우에서 입력을 했던, 자료는 깨져 보입니다.(표현을 못하겠습니다)
어떤 방법이 있는지 mysql Koea는 물론 구글에서도 조회를 해 보았지만 너무 실력이 없어서 자료를 찾을 수가 없었습니다.
혹시 어디서 이 문제를 해결 할 수 있는지 길을 알려 주시면 감사하겠습니다.
다시 한번 도움 부탁드립니다.
감사합니다.
최 초보 드림 꾸~~~~~~~~벅!!!!
쿼리 브라우저
mysql 명령 창에서 한글 값을 입력하고 select 명령을 이용해서 한글로 입력된 자료를 불러오면 깨져서 출력되었는데
'쿼리 브라우저'를 사용하면 한글이 깨지지 않고 제대로 출력할 수 있었어요.
'쿼리 브라우저'에 대해 검색하시면 답이 나올것 같아요.
제 답변이 정답이 아니라면 다른 분들이 더 좋은 답변 주실거에요.
utf8
http://dev.claztec.net/41
을 참고하시고요.
google에서 'mysql ut8 my.cnf' 라는 키워드로 검색한 결과입니다.
한글 블로그는 위의 키워드에 '한글' 을 추가한 결과고요.. :p
제 경우는 debian-lenny, mysql-5.0.51에서는 /etc/mysql/my.cnf 파일에서 의 설정으로도 한글입출력이 잘 되었습니다.
여전히 같은 문제가 발생합니다
http://notes.timeghost.net/2008/10/utf-8-and-mycnf.html http://dev.claztec.net/41 을 참고하시고요.
위의 두 링크를 모두 검색하여 보았습니다만 같은 내용으로 보여 집니다.
어떻든 my.cnf를 통채로 복사한 후 mysql을 다시 실행한후 윈도우에서 자료를 다시 입력하여 보았으나 결과는 같습니다.
서버의 locale도 utf8로 제대로 설정을 하였구요..
다시 한번 도움 부탁드립니다.
감사합니다.
최초보 드림 꾸~~~~~~벅!!!!
utf8 설정 확인
mysql 서버에 접속해서
처럼 utf8 설정이 되었는지 확인해 주세요.
그리고 해당 database 의 생성된 table 을 확인을 해야 합니다.
이미 latin1 환경에서 생성된 테이블이라서 입력되는 데이터는 utf8 으로 되어있어도 latin1으로 될것입니다.
그래서 my.cnf 에서 'SET NAMES utf8' 같이 해주는데 해당 database 에 접속하셔서
으로 질의해보시면 DEFAULT CHARSET의 값을 확인하실 수 있습니다.
결과 내용을 첨부합니다
이렇게 되어 있습니다만 역시 결과는
이렇게 나옵니다.
id 1번은 phpmyadmin을 이용하여 웹에서 입력한 내용이고
2번은 server에서 브라우저를 이용하여 입력
3번은 window에서 브라우지를 이용하여 입력한 내용입니다.
수고스러우시겠지만 좀 더 도움을 부탁드립니다.
감사합니다.
최 초보 드림 꾸~~~~벅!!!
mysql 재시작
재시작 하신다음에 company 테이블이 소속되어있는 database에 접속하신후, 라고 질의를 하시면 company 테이블의 스키마 정보를 보여줍니다.
맨 끝쪽에 DEFAULT CHARSE 이라는 값이 아마도 latin1 으로 되어있을듯 합니다. 으로 변경하시거나 아예 company 테이블을 삭제하셨다가 새로 만드시면 해결될듯 합니다.
mysql을 재시작했습니다
물론 my.cnf화일 수정후 mysqladmin을 사용하여 mysql을 재시작하였습니다. 이렇게 나옵니다.
또한, 지우고 새로 만들면서(phpmyadmin에서) collation을 utf8_general_ci로 설정하였는데도 결과가 위와 같습니다.
다시 한번 도움 요청드립니다.
감사합니다.
최 초보 드림 꾸~~~~~벅!!!
직접 한글 입력
조건이 mysql 서버가 utf8 환경이고, terminal 도 utf8 인코딩일때 입니다.
terminal 의 인코딩이 euckr 이거나 하면 한글이 깨질것입니다.
만약 mysql client 에서 한글 입출력이 잘 된다면, 웹 프로그래밍하실때 인코딩을 체크해보셔야 합니다.
html 태그의 meta 태그에 인코딩 설정이 utf-8 으로 되어있는가..
apache 설정에서 utf8이 기본으로 되어있는가..
웹 프로그래밍에서 인코딩 처리가 큰 이슈중에 하나인듯 합니다. :)
물론 영어권 나라들은 그닥 관심이 없는듯 하지만요..
직접 입력은 잘 됩니다
2) 터미널도 기본로케일 UTF-8을 사용합니다.
3) html문서도 아래와 같이 되어있습니다. Company Input
4) apache설정 파일은 아래와 같습니다.
뭐가 잘못된 것일까요? 진심으로 도움 부탁드립니다.
감사합니다.
최 초보 드림 꾸~~~~~벅!!!!
mysql character 설정
gnome-terminal에서 문자 인코딩 설정을 한국어로 바꾸고 select를 하면 utf8로 입력된 글자는 제대로 나오지 않고 euckr로 입력된 글자는 잘 나옵니다.
혹시 이 경우가 아닐까요?
* mysql character 설정
자세히 알려주시면 감사하겠습니다
죄송합니다만 어린 아이 가르치듯이 하나 하나 일러주시면 정말 감사하겠습니다.
다시 한번 말씀드리면,
1) Debian Etch
2) Default locales = utf8
3) Terminal = utf8
4) Mysql charset = utf8
5) html meta tage = utf8
... 여하튼 전부 utf8입니다...
감사합니다.
최 초보드림 꾸~~~~~벅!!!
제 생각은..
혹시 입력할 때 사용하는 페이지는 앞에 utf8로 설정한 html 문서와는 달리 문자 인코딩이 utf8이 아니지 않을까 하는 ( 설정을 하지 않았을지도 모른다는) 생각이 들어서요.
감사합니다
현재는 입력하는 html파일과 입력해 주는 php파일 두개만 있습니다.
html파일은 위에서 보시는 바와 같이 meta tag에 분명히 utf-8로 설정되어 있구요
입력해 주는 php 파일에는 <? php code ~~~~ 입력해라는 sql문.... ?> 달랑 이렇게만 들어 있습니다.
혹시, sql의 insert문에서도 지정할 수 있는 방법이 있을까요???
며칠째 여러분을 괴롭혀 드려서 정말 죄송합니다만
꼭!!! 도움을 부탁드립니다.
감사합니다.
최 초보 드림 꾸~~~~~벅!!!!
소스코드의 인코딩 문제
그러면 이것을 한번 확인해 주시기 바랍니다.
지금 company table에 데이터를 입력하는 php code 에서, mb_detect_encoding() 함수를 이용해서 해당 변수의 인코딩을 확인해 보세요.
예를 들면, HTML form 에서 name 이라는 값을 확인하시려면, 로 해보시면 됩니다. 그러면 전송된 데이터(name 변수) 의 인코딩을 알수 있습니다.
감사합니다.
도저히 이해가 안됩니다.
좀 더 도와 주세요.....
꼭!!!꼭!!! 부탁드립니다.
감사합니다.
최 초보 드림 꾸~~~~~~벅!!!
해결했습니다
다른건 다 똑 같이 했구요... 다만 입력하는 php code에서 insert문 앞에 이 문장을 넣고 실행 하였더니 터미널에서도 제대로 보이고 또 putty를 사용해서도 제대로 보입니다.
정말 기쁩니다. 며칠을 고생했는지....
그 동안 도와 주신 모든 분들께 진심으로 다시 한번 감사드립니다.
감사합니다.
최초보 드림 꾸~~~~~~벅!!!!