Laravel Umlaute ORM - 保存问题

Laravel Umlaute ORM - Problems with saving

我从网络服务收到一些 "Umlaute" - 比如 "ä,ü,ö),我在这里遇到 utf-8 问题。当我将它们存储到我的数据库中时,它显示如下:

..rsität

好的,所以检查了 utf-8 编码,但是当我尝试在保存之前回显值时,它显示正确,所有 Umlaute in utf-8。

我的数据库也是 utf-8(来自不同服务的另一个表存储 utf-8 没有任何问题)。这里唯一不同的是,我将它存储在一个事务中。

echo $laststop; // Fine with all the Umlaute

$Route = new BusRoute();
$Route->last_stop = $laststop; // if i set this to something like that: "Tüüt" as String, its correct in DB too
$Route->save();

// 数据库错误

// database.php
'dev_db' => [
        'driver'   => 'sqlsrv',
        'charset'  => 'utf8',
        'prefix'   => '',
    ],

// model.php

class BusRoute extends Model
{
    protected $connection = 'db_dev';

    /**
     * The database table used by the model.
     *
     * @var string
     */
     protected $table = 'bus_routes';

 }

编辑:检查了我的模型 "BusRoute.php" - 使用 UTF-8 编码保存。

这很奇怪 - 因为我阅读了多个网络服务 - 并且只在这里遇到了这个问题。有任何想法吗?

Web 服务为您提供的数据中包含某些字符,这些字符编码为相应的 html 实体。在将数据存储到数据库之前,使用 html_entity_decode() 将它们转换回单个字符。

$decoded_string = html_entity_decode('..rsität');

这会将 ä 转换回 ä