如何使用 CakePHP 的控制台烘焙 UTF-8 文件?

Posted

技术标签:

【中文标题】如何使用 CakePHP 的控制台烘焙 UTF-8 文件?【英文标题】:How to bake UTF-8 files with CakePHP's console? 【发布时间】:2010-11-25 21:27:35 【问题描述】:

由于某种原因,我使用 Cakephp 的控制台烘焙的每个文件都被我的 IDE Dreamweaver 编码为 ISO-8859-1。这工作正常,直到我最终输入一个特殊字符,这将被浏览器错误地显示,因为它的编码(由编辑器)与整体呈现不同。

如何强制控制台生成 UTF-8 文件,必要时带有 BOM?

我已经尝试转换用于烘焙标准脚手架页面的模板文件,但没有成功。

【问题讨论】:

【参考方案1】:

我有同样的问题 - 烘焙文件不是 UTF-8 而是 ASCII。 (使用记事本++编辑器,可以轻松转换,以其他格式保存文件)。

一旦 bake 生成文件,我必须将它们一一转换为 UTF-8,以便能够使用波兰本地字符。

我尝试将模板文件更改为 UTF-8,但不知何故这无济于事。这可能与默认文件不包含任何非 ascii 字符这一事实有关,因此即使保存为 UTF,它们仍然是 ASCII。

我发现解决这个问题的最简单方法是修改模板文件,例如。 cake\console\templates\default\classes\model.ctp 在某处包含 utf-8 字符,例如: //'message' => '你的自定义消息在这里 ł', (注意行尾的最后一个非 ASCII 字符。 然后转换并保存为 UTF-8 确保模板文件是 utf-8。

现在,模型文件生成为 UTF-8。

【讨论】:

非常感谢,这是一个绝妙的技巧!下次我烤蛋糕的时候我会记住的。【参考方案2】:

烘焙文件 UTF-8,或者更确切地说,它们只包含与基本 UTF-8 范围相同的基本 ASCII 字符,因此可以视为两者之一。这是 Dreamweaver 的问题,而不是 bake 的问题。检查 Dreamweaver 设置(或在合适的编辑器中编写代码;-P)。

您确实想要包含 BOM,它会是 screw you over later。

【讨论】:

【参考方案3】:

使用 Bake_UTF8 插件 =]

http://www.github.com/pedroelsner/bake_utf8

我希望这会有所帮助。

佩德罗·埃尔斯纳

【讨论】:

看起来很有希望!下次我要烤东西的时候我会试一试;谢谢。【参考方案4】:

实现此目的的另一种方法是打开生成 UTF-8 内容(不带 BOM)的 PHP 文件,然后使用 Notepad++ 将它们保存为 带 BOM 的 UTF-8 格式 (编码->UTF-8 编码)

就我而言,我有 Excel CSV 文件:

/patients/exportFirstReport/atskaite1-25-10-2013.csv

然后我必须将 PHP 文件的编码转换为堆栈:

\index.php
\app\Controller\PatientsController.php
\app\View\Patients\csv\export_first_report.ctp
\app\View\Layouts\csv\default.ctp

转换这些文件的编码后,它会生成可读的 UTF8 excel 文件

【讨论】:

以上是关于如何使用 CakePHP 的控制台烘焙 UTF-8 文件?的主要内容,如果未能解决你的问题,请参考以下文章

Cakephp 中的脚手架允许选择 Parent_id,但烘焙控制器显示一个空的选择框

使用关联和烘焙蛋糕时如何显示除 id 以外的其他字段

cakePHP & Twitter Bootstrap - 查看

用大写字母烘焙表

Cakephp 2.2.3 habtm 保存到中间表

cakephp烤