android어플에서 약 3개정도 String변수를 php서버로 보내면 php서버에서는 그 문자들을 mysql db에 저장을 합니다.
숫자나 영문은 모두 잘 되지만, 한글은 -> 이런 글자로 저장이 됩니다.
php에서는 간단하게
test.php
<?php
include 'mydb.inc';
$HashTag = $_REQUEST['HashTag'] ;
$UserId = $_REQUEST["UserId"] ;
$Content = $_REQUEST["Content"] ;
mysql_query("set names utf8");
$sql="insert into smartwiz_question values('id','$HashTag','$UserId','$Content')";
mysql_query($sql,$conn);
mysql_close($conn);
?>
이렇게 되어있구요.
android클라이언트 쪽에서는
private String sendData(String HashTag, String UserId, String Content) throws ClientProtocolException, IOException{
// TODO Auto-generated method stub
HttpPost request = makeHttpPost( HashTag, UserId, Content, "블라블라블라.test.php" );
HttpClient client = new DefaultHttpClient() ;
ResponseHandler<String> reshandler = new BasicResponseHandler() ;
String result = client.execute( request, reshandler ) ;
return result ;
}
private HttpPost makeHttpPost(String $HashTag, String $UserId, String $Content, String $url) {
// TODO Auto-generated method stub
HttpPost request = new HttpPost( $url ) ;
Vector<NameValuePair> nameValue = new Vector<NameValuePair>() ;
nameValue.add( new BasicNameValuePair( "HashTag", $HashTag ) ) ;
nameValue.add( new BasicNameValuePair( "UserId", $UserId ) ) ;
nameValue.add( new BasicNameValuePair( "Content", $Content ) );
request.setEntity( makeEntity(nameValue) ) ;
return request ;
}
private HttpEntity makeEntity( Vector<NameValuePair> $nameValue ) {
HttpEntity result = null ;
try {
result = new UrlEncodedFormEntity( $nameValue ) ;
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result ;
}
이 클래스를 사용하여
sendData(getResultName, UserId ,Content );
이렇게해서 보냅니다.
여기서 궁금한것 몇가지가 더 있는데요,
1. 이렇게 제가 android클라이언트에서 아무런 인코딩없이 php서버로 보내게된다면
그 문자변수에 들어있는 문자열들은 어떤 형식으로 되어있습니까?(예를 들러 utf-8이러던지 euc-kr이라던지...)
2. 한글이 안깨지려면 어디에서 어떤방식으로 변환을 해야하는지 궁금합니다..
감사합니다. 수고하세요!!
안드로이드를 매우 사랑하는!
항상 궁금했던것인데... 이렇게 문자보내서 머해요??ㄷㄷ
조롱이 아니라... ㅋㅋ 그 문자보내는 것을 해서 어떤것을 얻을수있는지? 의미있는것인지 궁금합니다