Laravel 4 + Blade, but MySQL is not encoded in UTF-8
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/17528385/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Laravel 4 + Blade, but MySQL is not encoded in UTF-8
提问by Slava V
We are developing a new site against a legacy database with Laravel 4.
We are developing a new site against a legacy database with Laravel 4.
The database is read-only and we can't convert it.
The database is read-only and we can't convert it.
We have
We have
'charset' => 'cp1251'
in the connection, but when we try to output a string via Blade, we get
in the connection, but when we try to output a string via Blade, we get
htmlentities(): Invalid multibyte sequence in argument
Digging deeper we see that:
Digging deeper we see that:
{{{ $shopProduct->product->sname }}}
compiles to:
compiles to:
<h2><?php echo e($shopProduct->product->sname); ?></h2>
where
where
function e($value)
{
return htmlentities($value, ENT_QUOTES, 'UTF-8', false);
}
Is there a way to make either Eloquentor PDOto get non-UTF-8 encoding (cp1251) from MySQL and actually get to use UTF-8in models?
Is there a way to make either Eloquentor PDOto get non-UTF-8 encoding (cp1251) from MySQL and actually get to use UTF-8in models?
Note: we can't change database encoding on server - it's beyond our control.
Note: we can't change database encoding on server - it's beyond our control.
回答by thestepafter
Set the charset to utf8.
Set the charset to utf8.
'charset' => 'utf8'

