CakePHP输出UTF-8

问题描述 投票:7回答:4

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

我做了什么:

  1. 从OpenOffice 3.1导出数据为csv(utf-8编码)
  2. 通过文件上传导入到phpMyAdmin(表格编码:'utf8_unicode_ci')

在phpMyAdmin的视图模式下,数据显示正确(它使用utf-8作为charset):

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

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

系统信息

  • 我试图访问我的页面的语言:德语
  • MySQL客户端版本:5.0.32
  • 我的操作系统:MAC OS X 10.5.7
  • 服务器脚本:CakePHP v1.2.3.8166

此致,本尼迪克特

mysql html cakephp encoding
4个回答
24
投票

我有类似的症状,我的解决方案是补充

'encoding' => 'UTF8' 

to config / database.php


3
投票

我遇到过类似的问题。大多数事情设置正确“开箱即用”,但我只想指出以下我认为有用的东西......我从开发到现场时遇到了这个问题:

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

  • 您的数据库编码在架构中设置。
  • Cake PHP可以手动强制从DB中获得一种编码。
  • Cake PHP然后需要为视图调用正确的编码。

当然,数据库设置是在数据库中设置的。在我的例子中,使用MySQL工作台,这只是右键单击模式并选择“Alter Schema ...”的情况。从那里我可以选择我想要的编码/校对。

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

'encoding' => 'utf8'

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

Configure::write('App.encoding', 'UTF-8');

一旦改变了所有三个部分,你应该有一个一致的字符集,因此显示。

希望能帮助任何人仍在寻找这个。


-1
投票

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

SET NAMES 'UTF-8'

-1
投票
$conn1  = mysqli_connect($this->db_host, $this->db_username, $this->db_password, $this->db_name);

添加此内容

mysqli_set_charset($conn1,"utf8mb4");

© www.soinside.com 2019 - 2024. All rights reserved.