Json_encode umlauts output

主宰稳场 提交于 2019-12-11 19:44:35

问题


I want to show my output in German umlauts, i got my output like this for example Fu009\ but i need "fü" like this.

<?php
$json = (object) array(
    "salutation" = > ''.$order - > order_custom_fields['_billing_anrede'][0].
    '',
    "title" = > ''.$order - > order_custom_fields['_billing_titel'][0].
    '',
    "first_name" = > ''.$order - > order_custom_fields['_billing_first_name'][0].
    '',
    "last_name" = > ''.$order - > order_custom_fields['_billing_last_name'][0].
    '',
    "street" = > ''.$order - > order_custom_fields['_billing_address_1'][0].
    '',
    "street_number" = > ''.$order - > order_custom_fields['_billing_address_2'][0].
    '',
    "address_supplement" = > ''.$order - > order_custom_fields['_billing_company'][0].
    '',
    "zipcode" = > ''.$order - > order_custom_fields['_billing_postcode'][0].
    '',
    "city" = > ''.$order - > order_custom_fields['_billing_city'][0].
    '',
    "country" = > ''.$pais.
    '',
    "terms_accepted" = > true,
    "receiving_mails_accepted" = > ''.$email.
    '',
    "email" = > ''.$order - > order_custom_fields['_billing_email'][0].
    '',
    "lottery_accepted" = > false,
    "lottery_solution" = > "LOTTERY",
    "original_created_at" = > ''.date('Y-m-d\TH:i:sP', strtotime($order - > order_date)).
    '',


);

foreach($items as $item) {
    $sku = $wpdb - > get_var($wpdb - > prepare('SELECT meta_value FROM dsr_postmeta WHERE meta_key="_sku" AND post_id='.$item['product_id'].
        ''));
    $sku_s = explode('-', $sku);
    $camp = $sku_s[0];
    $itm_n = $sku_s[1];
    $json - > items[] = (object) array(
        "campaign_number" = > (int) $camp,
        "item_number" = > (int) $itm_n,

    );
}



array_push($json_full, $json);
echo json_encode($json_full);
?>

I'm thinking about htmlentities, or utf8 thanks for you help!!


回答1:


In case you are using PHP 5.4+, change echo json_encode($json_full); to echo json_encode($json_full, JSON_UNESCAPED_UNICODE);

Full list of json_encode predefined constants can be found there: http://lt1.php.net/manual/en/json.constants.php

Demonstration

Code:

<?php
$json = (object) array(
  "uml" => "fü",
);

echo json_encode($json, JSON_UNESCAPED_UNICODE) . PHP_EOL;

echo json_encode($json) . PHP_EOL;

Output:

{"uml":"fü"}
{"uml":"f\u00fc"}



回答2:


Do you have set your charset correctly?

<head><meta charset="utf-8"></head>


来源:https://stackoverflow.com/questions/21550633/json-encode-umlauts-output

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!