【发布时间】:2016-11-13 09:54:58
【问题描述】:
当我尝试获取所有目录的列表并在 JSON 响应中使用该列表时,我收到响应包含格式错误的 UTF-8 字符的错误。
我知道我在目录中有像“Æ Ø Å”这样的字母。当我使用dd($directories) 时,我可以看到每个目录前面都有一个“b”,其中包含一个“Æ Ø Å”字母(如您在照片中看到的那样)。
我尝试使用它,但这也不起作用。
return response() -> json($movies, 200, ['Content-type'=> 'application/json; charset=utf-8'], JSON_UNESCAPED_UNICODE);
编辑: 这是我现在拥有的代码。
$drives = ['M1', 'M2', 'M3', 'M4'];
$movies =[];
foreach ($drives as $drive) {
$disk = Storage::disk($drive);
foreach ($disk -> directories() as $movie) {
$movies[] = $movie;
}
}
return response() -> json($movies, 200, ['Content-type'=> 'application/json; charset=utf-8'], JSON_UNESCAPED_UNICODE);
【问题讨论】:
-
您创建 JSON 的数据来自哪里?是 UTF-8 吗?
-
$movies[] = utf8_encode($movie);会更好吗?文件系统文件名(您正在使用)通常不是 UTF-8 -
你从哪里得到输出?
-
@apokryfos 谢谢,这确实有效!做一个答案,我会勾选它。 :)