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부분은 어떤 값이 들어가는지 확인하기위해서 쓴거라.. 안보셔도 되요~