从latin1编码json数组

时间:2015-08-18 15:25:55

标签: php arrays json latin1

所以我对php很新,并且我的数组有问题。

“基本上我有一个包含5个字段的数组。 现在数据部分属于latin1-german。但这让php的输出为“null”。如何解码数组,使php返回正确的文本?“

编辑: 所以我改变了代码(JSON_PRETTY_PRINT使它不返回任何内容)。 但问题仍然存在。像“ä”和“ü”这样的特殊字符仍然会返回“:null”。

// get all products from products table
$result = mysql_query("SELECT *FROM silberhell_app") 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"];

array_map($product, "utf8_encode"); // encode array values
$products[] = $product; // insert product into array
}
$data = array(
//'success'   => 1,
'products' => $products
);
}
echo json_encode($data); // make it slightly more readable
?>

1 个答案:

答案 0 :(得分:0)

稍微清理一下,现在应该工作:

$products = array();
while ($row = mysql_fetch_array($result)) {
    $product = array();
    $product["pid"] = $row["pid"];
    [...]

    array_map("utf8_encode", $product); // encode array values
    $products[] = $product; // insert product into array
}

$data = array(
    'success'   => 1,
    'products' => $products
);

echo json_encode($data, JSON_PRETTY_PRINT); // make it slightly more readable