【问题标题】:php wrong utf8 characters from mysql using Twig使用 Twig 的 mysql 中的 php 错误 utf8 字符
【发布时间】:2015-12-24 14:13:37
【问题描述】:

我在 php 上做一些 webapp,我使用我自己的 MVC 模式,包括 Activerecord 和 Twig 模板。

所以我的字符集有一些问题,有一些关于我的编码的细节。

  • 我使用波兰语字符
  • Mysql 编码设置为 utf8_unicode_ci(我试过 urf8_general_ci)
  • Twig 模板具有标准 html-5 标头和 utf8 编码
  • 我不确定文件编码(使用 netbeans),但是 view.encoding() 上的 sublime text 2 控制台说:u'Undefined',我还没有尝试更改它。

问题描述:

当我在 Twig 模板文件中使用像 ółąćź 这样的波兰字符时 - 一切看起来都很好,没有问题。我尝试使用:

echo $twig->render('hello.tpl', array('locations'=>"óóśąłłąś"));

而且在这种情况下也没有问题。

但是当我从数据库中获取数据时,波兰语字符就像“�” 我试图通过结构化的 php mysql 调用和 activerecord 来获取数据 - 例如。模型::all()。

Twig 模板中数据库中的字符总是有问题。 是的,我将活动记录配置设置为:dbname?charset=utf8

【问题讨论】:

    标签: activerecord utf-8 twig


    【解决方案1】:

    答案很有趣。

    我再次尝试结构化,我使用了这个查询:

    mysql_query("SET NAMES 'utf8'", $dbLink);
    

    它有效,现在所有字符都可见。 在 activerecord 上问题仍然存在,所以我更新了 activerecord 以构建,现在一切正常!

    【讨论】:

    • 您应该使用 pdo 或 mysqli,mysql 已从最近的 php 版本中删除。
    猜你喜欢
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    相关资源
    最近更新 更多