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

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

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

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

【问题讨论】:

    标签: cakephp encoding utf-8 console


    【解决方案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 文件

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多