Android получает http ответ от PHP, содержащий символ юникода - PullRequest
0 голосов
/ 27 января 2012

Я пишу приложение с использованием Android, предполагается, что некоторые китайские иероглифы извлекаются с сервера, сервера с использованием сценариев php, как здесь

 mysql_query("SET CHARACTER SET utf8", $link);
 $q= mysql_query("SELECT Name FROM ofPeers WHERE Address LIKE '$st' limit 0, 4");
 while($e = mysql_fetch_array($q))
    $output1=$output1.$e["Name"];

 print $output1;

Android использует некоторый код, такой как

HttpClient client = getHttpClient();
HttpPost request = new HttpPost(url);
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters,"UTF-8");        
request.setEntity(formEntity);
HttpResponse response = client.execute(request);

Я обнаружил, что у меня возникла исключительная ситуация при выполнении оператора execute, например, эта ошибка синтаксического анализа данных org.json.JSONException: конец ввода с символом 0 китайского символа. Я думаю, может быть, это вызвано Unicode, похожим на этот пост Как конвертировать набор символов в Android?

но сейчас я понятия не имею, как избавиться от ошибки! Любые предложения!

1 Ответ

0 голосов
/ 28 января 2012
$output1=$output1.$e["Address"];

Казалось бы, просто объединение всех результатов в одну строку. Это не даст вам вывод JSON, так как вы, похоже, анализируете ответ как JSON, вы можете ожидать синтаксическую ошибку.

Вы, вероятно, хотите поместить все свои адреса в массив, а затем использовать json_encode , чтобы преобразовать его в ответ JSON, который может прочитать Android.

Также у вас есть уязвимость SQL-инъекции. Пожалуйста, используйте mysql_real_escape_string над $st, прежде чем включать его в запрос, или, лучше, используйте параметризованный запрос (доступно в mysqli и PDO). Используйте mysql_set_charset вместо явного SET CHARACTER SET, иначе mysql_real_escape_string будет работать некорректно в некоторых угловых случаях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...