안드로이드에서 utf-8 로 get 방식으로 php 에 보내고 그걸 mysql 저장 하고 있는데요
안드로이드 확인
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
소스 일부분이구요 이렇게 utf-8 로 php 에 보냅니다 .
안드로이드 프로젝트 또한 utf-8 로 인코딩 되어있습니다.
php 부분
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
mysql_query('set names utf8', $connect);
$nickname = $_GET[nickname];
$nickname = iconv("UTF-8","UTF-8",$nickname);
php 문서도 utf-8 로 인코딩 되어있습니다.
이것도 소스일부분 이구요 그냥 한글 저장이 안되서 iconv 로 다시 변경을 해보았습니다.
mysql 부분
Server characterset : utf8
Db characterset : utf8
Client characterset : utf8
Conn. characterset : utf8
/etc/sysconfig/i18n
LANG="ko_KR.UTF-8"
SUPPORTED="ko_KR.UTF-8:ko_KR:ko:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
SYSFONTACM="8859-15"
db 컬럼 "nickName" 조합 이란 부분도 utf8_general_ci 로 변경 했습니다.
etc/my.cnf
[client]
default-character-set =utf8
[mysqld]
skip-character-set-client-handshake
init_connect = SET collation_connection = utf8_unicode_ci
init_connect = SET NAMES utf8
character-set-server = utf8
collation-server = utf8_general_ci
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
디비에서 쿼리로 nickName 에 한글을 "가나" 이렇게 넣고 안드로이드로 파싱하고 로그 찍어보면
uac00 ub098 이렇게 유니코드(?)로 넘어오는데 이게 무슨 관련이 있을까요
관련이 있다면 어느 부분을 설정해줘야 할까여 ...
일단 제가 설정한 값들입니다 그런데도 안드로이드에서 nickname 이란 부분을 한글로 써서 변수로 보내면
디비에 저장은 ? 로 됩니다 미치겠습니다 ㅠㅠ 제가 놓치고 있는 부분이 어디인가요 ㅠㅠ?
어디서 다시 접근 해야 할지 모르겠습니다 ㅠㅠ 도와주세요 고수님들
현재까지 테스트 이것저것 해보고 있는데 php 에서 직접 쿼리에 한글을 써서 날리면 db 에 한글 저장이 됩니다.
하지만 변수로 날리면 ? 가 뜹니다. 이러면 결국 안드로이드에서 잘못 넘겨진거라고 밖에 생각 안되는데
도통 감이 안오네여 그리고 받아 올땐 왜 유니코드로 받아지는걸까여 .. 하 ..미치겟네요 하루종일
이거 하나로 싸우고 있습니다. 제발 도와주세요 ㅠㅠ
===========================================
url += "id=" + id.getText() + "&";
url += "pass=" + pass.getText() + "&";
url += "nickname=" + nickname.getText() +"&";
url += "MyDeviceId=" + MyDeviceId; 혹시 이 부분이 문제가 되는건가요 ?! 이부분이 문제가 된다면 php 에서 어떻게 처리해줘야 할까요?!