如何将外来字符(例如&xE6;)从PHP数组传递到javascript数组?

如何将外来字符(例如&xE6;)从PHP数组传递到javascript数组?,javascript,php,arrays,Javascript,Php,Arrays,我有一个文件路径数组,它存储在名为$files的PHP数组中,我希望使用以下命令将其传递到javascript数组: var files = <?php echo json_encode($files)?>; var文件=; 这很好,但是它不会传递任何具有特殊字符的值,例如包含“æ”的值。相反,Javascript中的值显示为null。还有其他保存这些字符的方法吗?这些值都是文件路径,似乎是使用json_encode传递给OK的,而不是这些特殊字符。我已经解决了这个问题。我基本

我有一个文件路径数组,它存储在名为$files的PHP数组中,我希望使用以下命令将其传递到javascript数组:

 var files = <?php echo json_encode($files)?>;
var文件=;

这很好,但是它不会传递任何具有特殊字符的值,例如包含“æ”的值。相反,Javascript中的值显示为null。还有其他保存这些字符的方法吗?这些值都是文件路径,似乎是使用json_encode传递给OK的,而不是这些特殊字符。

我已经解决了这个问题。我基本上使用url_encode遍历了这个数组,然后用JSON将其转换为Javascript来解释

$filesEncoded = array();
foreach ($files as $f) {
    array_push($filesEncoded,urlencode($f));
}
<script>
    var files = <?php echo json_encode($filesEncoded)?>;
</script>
$filescoded=array();
foreach($f文件){
数组_push($filesconded,urlencode($f));
}
var文件=;

也许可以尝试在htmlentities调用中包装每个文件路径,这将正确显示所有特殊字符,并允许您将其传递回php,并使用html实体decode$filescoded=array\u map($files,function($e){return HTMLenties($e)}获取原始路径;你能告诉我更多关于如何做的信息吗?每个路径都是通过另一个函数自动收集的,但如果您能告诉我如何对每个文件路径进行编码,我可以在它将该路径附加到PHP$files数组之前将其插入。您的解决方案无论如何都不起作用,我在填充完$files数组后直接得到了这一行:$fileencoded=array\u map($files,function($e){return htmlentities($e);})但是我得到了这个错误:“警告:array_map()期望参数1是一个有效的回调,数组必须有两个成员”对于那一行。你是对的,我没有检查它。我的错误,array_map将回调作为第一个参数,array作为第二个参数。和往常一样直观。很高兴你解决了它。