我有一个这样的数组,我对其进行了 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/