mysql - Laravel 4 + Blade,但 MySQL 未采用 UTF-8 编码

标签 mysql character-encoding pdo laravel laravel-4

我们正在使用 Laravel 4 针对旧数据库开发一个新网站。

数据库是只读的,我们无法转换它。

我们有

'charset' => 'cp1251'

在连接中,但是当我们尝试通过 Blade 输出字符串时,我们得到

htmlentities(): Invalid multibyte sequence in argument

深入挖掘我们发现:

{{{ $shopProduct->product->sname }}}

编译为:

<h2><?php echo e($shopProduct->product->sname); ?></h2>

哪里

function e($value)
{
    return htmlentities($value, ENT_QUOTES, 'UTF-8', false);
}

有没有办法制作 EloquentPDO从 MySQL 获取非 UTF-8 编码( cp1251 )并实际使用 UTF-8在模型中?

注意:我们无法更改服务器上的数据库编码 - 这是我们无法控制的。

最佳答案

将字符集设置为utf8。

'charset' => 'utf8'

关于mysql - Laravel 4 + Blade,但 MySQL 未采用 UTF-8 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17528385/

相关文章:

mysql - 在 SQL 的子查询中使用 limit-clause 和 parent-query-column

character-encoding - 一个字符有多少位或字节?

javascript - 如何在 Javascript 函数中对 HTML 字符进行编码?

php - 获取数据作为现有类的新实例

php - 如何在 PHP 中显示在线用户?

php - 可以替代MySQL吗?

ruby - Sinatra/Ruby - 内部服务器错误 : invalid byte sequence in US-ASCII. 由具有特殊字符的数组引起

php - 如何删除选定的用户?磷酸二氢钾

javascript - 将 jquery 数组发送到 php 时遇到问题

MySQL 导入 CSV、转换日期格式 - 最佳实践