php - 如何在 PHP 中使用带有 json_encode() 的瑞典字母?

标签 php encoding json

我有一个这样的数组,我对其进行了 json 编码:

    $regularArray = array(      
        array( "label" => "Hello World", "value" => 1 ),
        array( "label" => "Hej Världen", "value" => 2 )
    );

    $jsonArray = json_encode( $regularArray );

(“Hej världen”在瑞典语中的意思是 Hello World )但是当我打印 $jsonArray 时,我得到了这个:

[{"label":"Hello World","value":1},{"label":null,"value":2}]

为什么数组中第二项的标签null?我知道它与“Världen”这个词有关,因为它包含一个非标准字母。我该如何解决这个问题?

最佳答案

json_encode函数仅适用于 UTF-8 编码数据。您可以将输入数组数据更改为 UTF-8。

使用 utf8_encode 对输入数组数据进行编码并在需要数据时使用 utf8_decode 对其进行解码

<?php
   $regularArray = array(      
        array( "label" => "Hello World", "value" => 1 ),
        array( "label" => "Hej Världen", "value" => 2 )
    );
    $regularArray[1]['label'] = utf8_encode( $regularArray[1]['label']);
    echo $jsonArray = json_encode( $regularArray );
    $data = json_decode($jsonArray, true);
    $data[1]['label'] = utf8_decode($data[1]['label']);
    print_r($data);

?>

输出:-

[{"label":"Hello World","value":1},{"label":"Hej V\u00c3\u00a4rlden","value":2}]
Array
(
    [0] => Array
        (
            [label] => Hello World
            [value] => 1
        )

    [1] => Array
        (
            [label] => Hej Världen
            [value] => 2
        )

)

我做了一个Test Page , 它工作正常。

关于php - 如何在 PHP 中使用带有 json_encode() 的瑞典字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9601531/

相关文章:

php - Symfony2+学说 : How to convert iso8859-1 to utf-8 and viceversa?

json - 如何加载本地 json 文件?

javascript - 将数组转换为 JSON 以检查值

php - 从 1 个 PHP 文件提供多个页面?

php - MySQL "less than"无法正常工作

php - mysql 和编码

java - 插入行 SPRING + Hibernate 时的 MySql 编码问题

json - 为 HTTP 响应在 JSON 中嵌入 XML 的最佳实践?

php - MySQL/Laravel 外键约束格式不正确

javascript - 如何检索通过ajax从 Controller 发送到 View 的数组?