如何使用 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,但烘焙控制器显示一个空的选择框