PHP json_encode中的西里尔字符

2022-08-30 20:23:36

我正在尝试使用php的函数json_encode将西里尔字母UTF-8数组编码为JSON字符串。示例代码如下所示:

<?php
  $arr = array(
     'едно' => 'първи',
     'две' => 'втори'
  );
  $str = json_encode($arr);
  echo $str;
?>

它工作正常,但脚本的结果表示为:

{"\u0435\u0434\u043d\u043e":"\u043f\u044a\u0440\u0432\u0438","\u0434\u0432\u0435":"\u0432\u0442\u043e\u0440\u0438"}

每个西里尔字符有6个字符。有没有办法获取键/值对的原始字符,而不是编码的字符?


答案 1

你不能在这里使用JSON_UNESCAPED_UNICODE常量吗?


答案 2
$str = json_encode($arr, JSON_UNESCAPED_UNICODE);

这个解决方案的使用适用于拉丁语和西里尔字母,PHP 5.5


推荐