当我转储我的模型的属性并且它有一个重音时,它会以这个“b”前缀返回
dump($venda_item->produto->nomeproduto); // b"teste téste"
我的数据库设置为 utf8 和 utf8_general_ci 排序规则当我在 json 中返回响应时,这会导致我出现以下错误
Malformed UTF-8 characters, possibly incorrectly encoded
,在这一行$json_response = Response::json($response, $this->getStatusCode(), $headers);
更新我发现如果我死了并将记录转储到网络路由上,它会显示正常的
teste téste
Route::get('/', function () {
dd(App\Vendasitem::where('codigovi', 112685)->first()->produto->nomeproduto);
}
否则,如果我在 Controller 或请求和我尝试的其他文件中做同样的事情,它会以“b”前缀返回给我更新 2
如果我像这样保存我的记录
PROMO - VIRICAPS (GUARANá + POLIVIT) 60 CáPS - CAIXA 18 UND
和 dump($venda_item->produto->nomeproduto);
它会返回带重音的正确结果。我所有的数据库,包括列都设置为
utf8mb4
和 utf8mb4_unicode_ci
最佳答案
如果您已经确认了数据库上的编码。看看 config/database.php
,关于字符集和排序规则的特性。
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci'
如果问题出在“打印”上,那么您可以使用
utf8_encode
函数。{{utf8_encode($yourVar)}}
关于php - 带有重音记录的带有 "b"前缀的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54675682/