【发布时间】:2017-11-27 04:59:36
【问题描述】:
我正在尝试检索保存为 blob 的图像,但是当我尝试使用 Laravel 5.4 将其作为 JSON 返回时,我不断收到此错误“UTF-8 字符格式错误,可能编码不正确”。出了什么问题,我该如何解决?
database.phpmysql配置
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
检索图像
public function getpic()
{
$pic = DB::connection('mysql')
->table('itempictures')
->select('picture')
->get();
return response()->json($pic);
}
表的collation是latin1_swedish_ci
列本身的collation是null
【问题讨论】:
-
你有什么问题?
-
我想知道怎么回事
-
我认为您对编码的假设是错误的,编码是关于人类可读的文本,而不是关于二进制(大)对象。我的意思是转码不应该发生在链中的任何地方。排序是关于使用编码对文本进行排序,它也与 blob 无关。
-
@Code4R7 对不起,我没有关注。你是说数据没有错吗?
-
问题的原因不在您的数据库中。图像是未经编码的二进制数据,不得将其解析为编码数据。当您尝试将其返回为 JSON (Unicode) 时,这似乎正在发生。也许您可以分享您如何将图像数据放入 JSON 字符串?
标签: php laravel encoding utf-8