PHP 数组到 javascript 数组 UTF-8

PHP array to javascript array UTF-8

我尝试将 php 数组移动到 javascript 数组。 这就是我所做的:

$cities = "בני ברק, גבעתיים, חוות שלם, רמת גן";

$php_array = explode(',', $cities);

$js_array = json_encode($php_array,JSON_HEX_APOS|JSON_HEX_QUOT);

echo "<script type='text/javascript'> var cities = ". $js_array . ";</script>";

出于某种原因,当我打开 google chrome 调试器并检查城市是什么时,这就是我得到的:

<script type='text/javascript'> var cities = ["&#1488;&#1494;&#1506;&#1511;&#1492; &#1489;&#1489;&#1504;&#1497; &#1489;&#1512;&#1511;"," &#1490;&#1489;&#1506;&#1514;&#1497;&#1497;&#1501;"," &#1495;&#1493;&#1493;&#1514; &#1513;&#1500;&#1501;"," &#1512;&#1502;&#1514; &#1490;&#1503;"];</script>

不知道为什么会解码。我有 php 5.6.

后来我尝试只移动一个普通变量,即使我移动一个普通变量(没有json_encode)它也变成那样

我用了那些例子:

Convert php array to Javascript

Passing utf-8 strings between php and javascript

谢谢!

首先,使用 UTF-8 with BOM 编码保存您的文件。然后,将 JSON_UNESCAPED_UNICODE 选项添加到您的 json_encode 调用中。

$js_array = json_encode($php_array, JSON_HEX_APOS|JSON_HEX_QUOT|JSON_UNESCAPED_UNICODE);