2016-04-12 8 views
1
$connect = mysqli_connect("localhost", "root", "123456", "json_test"); 

$sql = "SELECT * FROM names"; 
$query = mysqli_query($connect,$sql); 
while($row=mysqli_fetch_array($query)){ 
    $arr[]=array(
     'id' => $row['id'], 
     'title' => $row['name'] 
    ); 
} 
echo json_encode($arr); 

wird zurückgegeben ??????? und es ist kyrillischer Text (utf-8). Wie man es repariert?JSON kann kyrillische Daten nicht zurückgeben

+2

hinzufügen 'mysqli_set_charset ($ verbinden "UTF-8");' nach der Verbindung und überprüfen !! – Saty

+0

Das funktioniert gut. Danke @Saty – Tuguldur

Antwort

1

Versuchen Sie, $ mysqli-> set_charset ("utf8") hinzuzufügen. Bitte überprüfen Sie den Code unten und ich

$connect = mysqli_connect("localhost", "root", "123456", "json_test"); 
$connect->set_charset("utf8"); 

$sql = "SELECT * FROM names"; 
$query = mysqli_query($connect,$sql); 
while($row=mysqli_fetch_array($query)){ 
    $arr[]=array(
     'id' => $row['id'], 
     'title' => $row['name'] 
    ); 
} 
echo json_encode($arr); 
+0

mysqli_set_charset ($ connect, "utf8"); setze diese Zeile nach meiner Verbindung, als sie funktioniert. Ich denke, deine Lösung ist dieselbe. Danke für die Antwort :) – Tuguldur

+0

@Saty: Danke – Ajay

+0

Sie sind herzlich willkommen !!! genießen – Saty

1

Die mysqli_set_charset() Funktion gibt den Standardzeichensatz verwendet werden sollen wissen lassen, wenn Daten von und zu dem Datenbank-Server zu senden.

Sie müssen mysqli_set_charset($connect,"utf8"); nach Ihrer Verbindung hinzufügen!

$connect = mysqli_connect("localhost", "root", "123456", "json_test"); 
mysqli_set_charset($connect,"utf8"); 

lesen http://php.net/manual/en/mysqli.set-charset.php