Laravel - 输出中的俄罗斯符号

时间:2018-02-18 22:26:24

标签: php laravel

我的类别表中有以下内容。有俄罗斯符号出现:

id   name
1    Обувь

Обувь= Obuv

我希望在输出中将“Obuv”作为俄语符号。

echo Category::select('name')->first();

这个脚本应该给我“Обувь”作为输出,但我得到了

  

{ “名称”: “\ u041e \ u0431 \ u0443 \ u0432 \ u044c”}

怎么了?如何获得正确的输出?如果我在数据库中写“Obuv”,英语“Obuv”将在Laravel中给我正确的输出。在phpMyAdmin中,它给了我俄罗斯符号没有麻烦。问题出在Laravel。

1 个答案:

答案 0 :(得分:1)

您正在通过回显在Laravel中默认以JSON输出的Category模型来输出数据。默认情况下,这会在输出时自动转义多字节Unicode字符。当您运行json_encode()时,您可以提供JSON_UNESCAPED_UNICODE选项,如下所示:

$data = Category::select('name')->first();
echo json_encode($data, JSON_UNESCAPED_UNICODE);
但是,我应该清楚。您的Category没有存储转义数据,当您输出到JSON时,只会转义 。如果您所做的只是确保通过echo从数据库中获取正确的数据,那么您应该是明确的。

如果您只是寻找类别name属性的原始文本,您应该能够输出如下:

echo $data->name;

有关详细信息,请参阅http://php.net/manual/en/function.json-encode.phphttps://laracasts.com/discuss/channels/laravel/how-to-prevent-laravel-from-returning-escaped-json-data

相关问题