Mysql 使用CakePHP的UTF-8输出

Mysql 使用CakePHP的UTF-8输出,mysql,html,cakephp,encoding,Mysql,Html,Cakephp,Encoding,我正在尝试将一些Excel数据移动到MySQL,但在编码方面遇到了问题 我所做的: 从OpenOffice 3.1以csv格式导出数据(utf-8编码) 通过文件上载导入到phpMyAdmin(表编码:“utf8\U unicode\U ci”) 在phpMyAdmin的查看模式下,数据显示正确(使用utf-8作为字符集): 当我试图在我的网页上显示数据时,我得到一个带有问号的哈希 系统信息 我试图在页面上使用的语言: 德文 MySQL客户端版本:5.0.32 我的操作系统:MAC OS

我正在尝试将一些Excel数据移动到MySQL,但在编码方面遇到了问题

我所做的:

  • 从OpenOffice 3.1以csv格式导出数据(utf-8编码)
  • 通过文件上载导入到phpMyAdmin(表编码:“utf8\U unicode\U ci”)
  • 在phpMyAdmin的查看模式下,数据显示正确(使用utf-8作为字符集):

    
    
    当我试图在我的网页上显示数据时,我得到一个带有问号的哈希

    系统信息

    • 我试图在页面上使用的语言: 德文
    • MySQL客户端版本:5.0.32
    • 我的操作系统:MAC OS X 10.5.7
    • 服务器脚本:CakePHP v1.2.3.8166
    问候,,
    Benedikt

    您是否正在使用mysql设置与UTF-8的连接

    SET NAMES 'UTF-8'
    

    我也有类似的症状,我的解决办法是

    'encoding' => 'UTF8' 
    

    要配置/database.php,我遇到了与此类似的问题。大多数东西都是“开箱即用”正确设置的,但我只想指出以下我觉得有用的东西。。。我在从dev迁移到live时遇到了这个问题:

    您需要有匹配的数据库编码(需要检查2项)以及视图编码

    • 数据库编码已在架构中设置
    • 可以手动强制Cake PHP从数据库中获得一种编码类型
    • 然后,PHP还需要为视图调用正确的编码
    当然,数据库设置是在数据库中设置的。在我的例子中,使用MySQL workbench,只需右键单击模式并选择“Alter schema…”。从那里我可以选择我想要的编码/排序规则

    在Cake PHP中,数据库编码在app\Config\database.PHP中设置。您应该确保数据库配置数组(大约第60行)启用/选择了正确的编码。例如:

    'encoding' => 'utf8'
    
    最后,视图需要选择要显示的HTML的正确版本。这将从文件app\Config\core.php(大约第82行)写入模板中

    一旦所有三个部分都被更改,您应该有一个一致的字符集,因此显示

    希望这能帮助任何还在寻找这个的人

    $conn1  = mysqli_connect($this->db_host, $this->db_username, $this->db_password, $this->db_name);
    
    添加此连接


    mysqli_set_字符集($conn1,“utf8mb4”)

    不要错过,这一行存在于默认配置中。但是它被评论掉了。非常感谢。您保存的meThis是保存我的应用程序的最正确、最简单和最有效的解决方案。有一个包含ASCII编码记录的完整表,这一行为我节省了大量的
    utf8\u encode()
    callsQuestion与CakPp有关。我知道@Sehdev,所以在某些情况下,当我们在配置文件中设置“encoding”=>utf8时,它不起作用。所以你可以用这个。
    Configure::write('App.encoding', 'UTF-8');
    
    $conn1  = mysqli_connect($this->db_host, $this->db_username, $this->db_password, $this->db_name);