У меня есть база данных «продуктов» в mysql, и я передаю их в приложение через этот код .php. Моя проблема в том, что, поскольку у меня есть специальные символы, такие как «ä, ö, ü» и особенно «€», этот код не работает для меня. Специальные символы просто удаляются из строки.
Я попробовал несколько кодировок в php и попытался загрузить данные в базу данных в windows 1252, а также в латиницу 1, 2, 15.
Результаты можно увидеть здесь: arsdecora.net/get_all.php
<?php
/*
* Following code will list all the products
*/
// array for JSON response
$response = array();
// include db connect class
require_once __DIR__ . '/db_connect.php';
// connecting to db
$db = new DB_CONNECT();
// get all products from products table
$result = mysql_query("SELECT *FROM table") or die(mysql_error());
// check for empty result
if (mysql_num_rows($result) > 0) {
// looping through all results
// products node
$response["products"] = array();
while ($row = mysql_fetch_array($result)) {
// temp user array
$product = array();
$product["pid"] = $row["pid"];
$product["name"] = $row["name"];
$product["kategorie"] = $row["kategorie"];
$product["beschreibung"] = $row["beschreibung"];
$product["bild"] = $row["bild"];
$product["preis"] = $row["preis"];
$products[] = array_map(function ($string) { return mb_convert_encoding($string, 'Windows-1252', 'UTF-8'); }, $product);
}
$data = array(
//'success' => 1,
'products' => $products
);
}
echo json_encode($data); // make it slightly more readable
?>
окна 1252, а также латинские 1, 2, 15
Чтобы разрешить несколько кодировок, вы должны переключиться на utf8. И делать это на всех этапах вашего кода.
Других решений пока нет …