Laravel雄辩地没有从sqlite数据库接收重音字符

时间:2015-12-24 22:43:55

标签: php laravel sqlite laravel-5.1

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

// 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

提前致谢!

2 个答案:

答案 0 :(得分:0)

尝试像这样设置标题

    <!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保存为charset

答案 1 :(得分:0)

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