Php Laravel eloquent未从sqlite数据库接收重音字符

Php Laravel eloquent未从sqlite数据库接收重音字符,php,laravel,sqlite,laravel-5.1,Php,Laravel,Sqlite,Laravel 5.1,我正在使用Laravel Eloquent从数据库中检索记录。当我访问某个雄辩模型的string属性时,只要该字符串不包含任何重音字符,它就可以完美地工作。否则,我会得到一些带有b前缀的字符串文字,其中充满了奇怪的字符。传递给blade模板的此类字符串根本不会呈现 // Laravel dump dump(Project::find(10)->title); // displays b"¬ernob¡lì svØt" dump('Černobílý svět'); // di

我正在使用Laravel Eloquent从数据库中检索记录。当我访问某个雄辩模型的string属性时,只要该字符串不包含任何重音字符,它就可以完美地工作。否则,我会得到一些带有b前缀的字符串文字,其中充满了奇怪的字符。传递给blade模板的此类字符串根本不会呈现

// Laravel dump
dump(Project::find(10)->title); // displays b"¬ernob¡lì svØt"
dump('Černobílý svět');        // displays "Černobílý svět" correctly

// Artisan tinker
>>> App\Project::find(10)->title
=> b"┬Černob┬íl├Č sv├śt"
然而,当我使用sqlite命令行访问该记录时,字符串看起来很好。我想这是编码配置不当的结果,但我不知道如何修复它

sqlite> select id, title from projects where id = 10
10 | Černobílý svět

提前谢谢

尝试这样设置标题

    <!DOCTYPE html> 
    <!--[if lt IE 7 ]> <html lang='hr' class='no-js lt-ie10 lt-ie9 lt-ie8 lt-ie7'> <![endif]-->
<!--[if IE 7 ]>    <html lang='hr' class='no-js lt-ie10 lt-ie9 lt-ie8'> <![endif]-->
   <!--[if IE 8 ]>    <html lang='hr' class='no-js lt-ie10 lt-ie9'> <![endif]-->
   <!--[if IE 9 ]>    <html lang='hr' class='no-js lt-ie10'> <![endif]-->
  <!--[if (gt IE 9)|!(IE)]><!--> <html lang='hr' class='no-js'> <!--<![endif]-->
  <head>
  <meta charset='utf-8'>
  <meta http-equiv='Content-Language' content='hr'>


用语言代码替换hr,但将utf-8另存为字符集

问题在于命令行。我遇到问题的记录是使用Laravel的
php artisan tinker
通过雄辩的模型方法
create()
添加的,或者直接添加到数据库
sqlite3
shell中,在这两种情况下都使用控制台,这可能是字符混淆的原因。谢谢您的帮助。

这不会产生任何效果。考虑到artisan tinker也返回不正确的字符串,我猜问题出在PHP/Laravel中,而不是HTML呈现中。如您所见,我无法重现您的问题……您可能希望检查数据库表排序规则并将其设置为utf8_unicode_ciThanks以获取建议,但我还没有找到如何使用SQLite执行此操作的方法。您也在使用SQLite吗?这可能会对您有所帮助。