【问题标题】:Problems with UTF8 Characters in MySQL and Phalcon PHPMySQL 和 Phalcon PHP 中的 UTF8 字符问题
【发布时间】:2015-11-24 13:37:08
【问题描述】:

我有一个 Phalcon PHP 和 MySql 项目。

当 UTF8 字符必须保持这些错误被存储时。

例如: 我保存 : nueva descripción ñññ 在数据库中: nueva descipción ñññ

我已经在数据库、表和字段中尝试了几种类型的排序规则。

感谢您的帮助。

【问题讨论】:

  • UTF-8 all the way through的可能重复
  • 不同意重复标志,因为上述主题答案均未提供此问题的解决方案。
  • @Andrés Luque 你检查你的mysql配置了吗?
  • 有任何反馈吗?有效吗?
  • 搜索 Mojibake。

标签: php mysql utf-8 phalcon


【解决方案1】:

在正确定义数据库元素的同时,您还必须将连接设置为使用 UTF-8 编码。由于 Phalcon 使用 PDO,您可以尝试修改您的连接:

$di["db"] = function() {
    return new \Phalcon\Db\Adapter\Pdo\Mysql(array(
        "host" => "localhost",
        "username" => "root",
        "password" => "1234",
        "dbname" => "test",
        "options" => array( // this is your important part
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
        )
    ));
};

来自Phalcon Forum 的示例。

在我使用波兰语时,我的数据库排序规则大多设置为 utf8_polish_ci 或有时设置为 utf8_universal_ci。由于结果排序问题,您必须对其进行测试。

【讨论】:

    【解决方案2】:

    检查您的项目数据库是否为 utf8-unicode-ci 排序规则。 还要检查你所有的个人表是否有排序规则 utf-8-unicode-ci

    如果不正常,请检查您的 apache mysql 配置 my.ini 文件

    在检查中,UTF 8 Settings 没有像这样的哈希 (#) 注释

    ## UTF 8 Settings
    init-connect=\'SET NAMES utf8\'      //remove #
    collation_server=utf8_unicode_ci         
    character_set_server=utf8
    

    【讨论】:

      猜你喜欢
      • 2011-07-12
      • 1970-01-01
      • 2011-08-27
      • 2015-11-23
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      相关资源
      最近更新 更多