3
나는 그것으로부터 데이터를 얻고 ListView를 채우기 위해 온라인 데이터베이스에 연결하는 안드로이드 애플리케이션을 개발 중이다. 정보를 얻기 위해 PHP 페이지를 사용하고 있습니다. 데이터는 json을 사용하여 인코딩됩니다. 데이터베이스에는 아랍어 문자가 들어 있지만 잘 인코딩되지 않았으므로 다음과 같이 표시됩니다. "???????".안드로이드 Json 인코딩 오류
자바 코드는 다음과 같습니다
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
//httpclient = new DefaultHttpClient();
httpclient = new DefaultHttpClient();
String type2="car";
httppost = new HttpPost("http://www.mypage.com/myfolder/mypage.php?Username="+type2+"");
try
{
nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("Type",type));
nameValuePairs.add(new BasicNameValuePair("Date",date));
nameValuePairs.add(new BasicNameValuePair("Title",title));
nameValuePairs.add(new BasicNameValuePair("Content",content));
nameValuePairs.add(new BasicNameValuePair("Time",time));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));
response = httpclient.execute(httppost);
if(response.getStatusLine().getStatusCode()==200)
{
entity=response.getEntity();
if(entity !=null)
{
InputStream instream=entity.getContent();
try
{
JSONArray jArray = new JSONArray(convertStreamToString(instream));
arr=jArray;
// int jArrayLength = arr.length();
postsinarray = new String[arr.length()];
arrayinlist=new String[arr.length()];
//final List<String> listContents = new ArrayList<String>(jArrayLength);
//thelist=listContents;
}
catch(JSONException e)
{
}
}
}
}//End of first try
catch(Exception e)
{
// Toast.makeText(getBaseContext(),"CONNECTION ERROR",Toast.LENGTH_LONG).show();
}
PHP 코드는 다음과 같습니다
<?php
//ini_set('default_charset','utf-8');
//header('content-type:text/html;charset=utf-8');
$host="myhost";
$user="myuser";
$pass="mypass";
$dbname="mydb";
$Username=$_GET['Username'];
$con= mysql_connect($host,$user,$pass);
$BD= mysql_select_db($dbname, $con);
$query=mysql_query("select * from Todolist where Username='".$Username."' ORDER BY Date DESC");
$num=mysql_num_rows($query);
//echo phpversion();
if($num>=1)
{
$output=array();
while($list=mysql_fetch_assoc($query))
{
$output[]=$list;
}
echo json_encode($output,JSON_UNESCAPED_UNICODE);
mysql_close();
}
else
{
echo "error";
}
?>
어떤 도움을 주 시겠어요?
브라우저에서 테스트하면 괜찮습니까? – reactivemobile
아니요, 브라우저에서 링크를 사용해도 [{ "Taskid": "65", "Username": "moonwalker", "Title": "Payment", "Type1": " 지불 ","유형 ":"텍스트 ","내용 ":"여행 준비를하고 여행을 즐기기 위해 비자를 지불해야합니다. ","날짜 ":"2014-2-5 ","시간 ": "21:30"}, { "Taskid": "60", "Username": "moonwalker", "Title": "??????? ??????", "Type1": "감상", "유형": "음성", "내용": "??? ???????? ???????????????" , "Date": "2014-02-05", "Time": "19:48"}] –
OK 문제는 데이터베이스에 있으므로 다른 태그로 질문을 다시 게시해야합니다. – reactivemobile