SQLSTATE [HY000]:常规错误:1366不正确的字符串值

时间:2019-05-27 12:54:05

标签: mysql laravel-5

请帮助。执行Model :: create($ attributes)

时出现此错误

我的数据库编码为 utf8mb4 ,排序规则为 utf8mb4_unicode_ci

我尝试了许多建议,例如重新运行迁移,设置名称utf8等。浏览了类似问题的问题已有好几天了-没什么帮助。请提出我缺少的信息吗?

我将分解该过程:

  • 这是Laravel 5.8项目
  • 我正在使用barbushin / php-imap包来 提取电子邮件并将其存储到数据库。

这是代码:

public static function read()
{
    /**
     * Fetch emails
     */
    $mailbox = new \PhpImap\Mailbox(
        '{'.config('imap.host').':'.config('imap.port').'/'.config('imap.protocol').'/'.config('imap.encryption').'/novalidate-cert}INBOX',
        ''.config('imap.username').'',
        ''.config('imap.password').'',
        storage_path('app/public/helpdesk'));

    $ids = $mailbox->searchMailbox('ALL');

    if($ids) {

        foreach ($ids as $id) {

            $message = $mailbox->getMail($id);

            $task = Task::create([
                'uuid' => $uuid,
                'subject' => $message->subject,
                'description' => $message->textHtml,
                'from_name' => $message->fromName,
                'from_email' => $message->fromAddress,
                'task_type' => $type,
                'task_status' => $status,
                'start_at' => Carbon::now(),
                'due_at' => Carbon::now()->addDays(1),
            ]);

            $mailbox->deleteMail($id);
        }

    }

}

我成功获取了电子邮件,但是在我的情况下,如果其中包含非utf字符(立陶宛语),则会出错

SQLSTATE [HY000]:常规错误:1366不正确的字符串值

我尝试了各种编码功能来预处理文本,但是我得到的只是? sybmols而不是实际字母或错误...

0 个答案:

没有答案