2013-07-21 5 views
1

Я пишу приложение для Android, и я хочу запросить db и получить результаты с помощью json_encode. Так у меня есть этот дб:json_encode, utf8 и греческие символы

CREATE DATABASE `my_db` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 

я использую utf8, потому что я хочу сохранить греческие символы. Все таблицы имеют команду utf8_general_ci.

Наконец-то у меня есть эта служба php, которую я использую для запроса моего db.

<?php 
$host = "localhost"; 
$username = "root"; 
$password = "password"; 
$dbname = "my_db"; 

$con = mysql_connect($host,$username,$password) or die ('Error connecting to mysql'); 

mysql_query("SET character_set_results=utf8", $con); 
mysql_query("SET NAMES 'utf8'", $con); 
mysql_select_db($dbname,$con); 

$query = "SELECT * from patients"; 
$result = mysql_query($query,$con); 
while($e=mysql_fetch_assoc($result)) 
     $output[]=$e; 

print(json_encode($output)); 
mysql_close($con); 
?> 

Проблема в том, что в выходе я не получаю греческие символы. Вместо этого я получаю это:

[{"patient_id":"2","email":"[email protected]","password":"password2","firstname":"\u03a7\u03a1\u0397\u03a3\u03a4\u039f\u03a3","lastname":"\u039c\u03a0\u0391\u0396\u0399\u03a9\u03a4\u0397\u03a3","birth":"1989-11-11","mobile":"6941212121","tameio":"\u039f\u0393\u0391"}] 
+1

Если вы используете json-декодирование в клиенте (например, JSON.parse в JavaScript или json_decode в php), он будет декодировать escape-символы Unicode. – jcubic

+0

Возможный дубликат [проблема с веб-сервисом вывода php-json с utf-8-символами (греческий)] (http://stackoverflow.com/questions/6397534/php-json-output-web-service-problem-with-utf- 8-символов-греческий). Вы также можете взглянуть на мой ответ на символ [°], который не отображается в функции php json \ _encode, как отобразить это?] (Http://stackoverflow.com/questions/15964967/degree-character- not-display-in-php-json-encode-function-how-to-display) – PleaseStand

ответ

0

Это право. Все символы не в ascii будут преобразованы в формат UTF-8.

Данные будут правильно декодированы json_decode.

+0

Я этого не знал. Я сделал то же самое, но с английскими символами, и результат не был закодирован таким образом. Спасибо, что я пытался узнать, что я делаю неправильно. –

+0

Данные будут правильно декодированы с помощью 'json_decode'. Не беспокойтесь об этом. – srain

Смежные вопросы