APM을 사용하여 간단한 개발을 하고 있는 학생입니다.
에뮬레이터에서 숫자나 영문을 입력하면 php를 통하여 db에 insert가 확실하게되는데요.
한글을 입력하면 한글 갯수대로 ->-> 이런 화살표만 출려되네요; ( ex> 가나다라 = ->->->->)
php에서 바로 한글을 사용하여 insert하면 db에 한글로 잘 들어갑니다만..
java에서 php로 넘어가는 변수에 저장되어있는 한글을 php에서 인식하지 못하는듯합니다.
아무래도 java와 php사이에 인코딩 디코딩 문제인것 같은데.
어느 부분을 어떻게 건드려야 할지 모르겠네요;. ㅠ 조언 부탁드립니다-
밑에 코드에서는 addr1 이 부분만을 테스트해보는 코드입니다.
try {
addr1 = new String(addr.getBytes("utf-8"),"utf-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
try {
String a = sendData(name,addr1,phone);
tv.setText(a);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
private String sendData(String name, String addr, String phone) throws ClientProtocolException, IOException{
HttpPost request = makeHttpPost(name,addr,phone,IP주소);
DefaultHttpClient client = new DefaultHttpClient();
String html="";
try{
HttpResponse response = client.execute(request);
String line=null;
BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),"utf-8"));
while((line=br.readLine())!=null){
html+=line;
}
br.close();
}catch(Exception e){}
return html;
}
private HttpPost makeHttpPost(String $name, String $addr,String $phone, String $url){
HttpPost request = new HttpPost($url);
Vector<NameValuePair> nameValue = new Vector<NameValuePair>();
nameValue.add(new BasicNameValuePair("name",$name));
nameValue.add(new BasicNameValuePair("addr", $addr));
nameValue.add(new BasicNameValuePair("phone", $phone));
request.setEntity(makeEntity(nameValue));
return request;
}
private HttpEntity makeEntity(Vector<NameValuePair> $nameValue){
HttpEntity result = null;
try{
result = new UrlEncodedFormEntity($nameValue);
} catch(UnsupportedEncodingException e){
e.printStackTrace();
}
return result;
}
관련된 php입니다.
<?php
$name = $_REQUEST['name'];
$addr = $_REQUEST['addr'];
$phone = $_REQUEST['phone'];
$link = mysqli_connect('localhost','root',패스워드,데이터베이스');
@mysqli_query($link,"set NAMES utf8");
mysqli_query($link,"INSERT INTO shop(name,address,phone) VALUES ('나나','$addr','$phone')");
echo "$addr";
mysqli_close($link);
?>
여기서 '나나'라고 한글로 적혀진 부분은 db에 확실하게 한글로 insert됩니다.
echo부분은 어떤 값이 들어가는지 확인하기위해서 쓴거라.. 안보셔도 되요~




java.net.URLencorder 로 한번 해보세요.