2010-11-25 85 views
0

出於某種原因,我使用CakePHP的控制檯烘焙的每個文件都被我的IDE Dreamweaver編碼爲ISO-8859-1。這個工作正常,直到我輸入一個特殊的字符,這個字符會被瀏覽器錯誤地顯示出來,因爲它的編碼(編輯器)與整體渲染不同。如何使用CakePHP的控制檯烘焙UTF-8文件?

如何強制控制檯生成UTF-8文件,並在必要時附帶BOM?

我已經嘗試轉換模板文件,用於烘烤標準腳手架頁面,但沒有運氣。

回答

1

我有同樣的問題 - 烘焙文件不是UTF-8,但ASCII。 (使用記事本++編輯器,它允許輕鬆轉換,以另一種格式保存文件)。

一旦烘烤生成文件,我必須逐個將它們轉換爲UTF-8,以便能夠使用波蘭語本地字符。

我試着將模板文件更改爲UTF-8,但不知何故,這並沒有幫助。這可能與默認文件不包含任何非ascii字符的事實有關,因此即使保存爲UTF,它們也會保留ASCII。

我發現克服這個最簡單的方法是修改模板文件,例如。 cake \ console \ templates \ default \ classes \ model.ctp 在某處包含utf-8字符,例如: //'message'=>'您的自定義消息在這裏ł', (注意最後一個非ASCII字符在行尾。 然後轉換並保存爲UTF-8可以確保模板文件是UTF-8。

現在,模型文件作爲UTF-8生成。

+0

thx很多,這是一個聰明的把戲!下次我要烤蛋糕時,我會記住它。 – 2011-01-14 00:23:28

1

烘焙文件 UTF-8,或者說,它們只包含基本的ASCII字符,它們與基本的UTF-8範圍相同,所以可以被認爲是。這是Dreamweaver的問題,不是bake的問題。檢查Dreamweaver設置(或在一個體面的編輯器中編碼; -P)。

你做不是想包括一個BOM,它會screw you over later

+0

mmmh,還好。足夠好,我想... – 2010-11-26 08:39:23

1

使用Bake_UTF8插件=]

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

我希望這是有幫助的。

佩德羅埃爾斯納

+0

看起來很有前途!下次我不得不烤一些東西時,我會嘗試一下;謝謝。 – 2011-09-10 14:00:25

0

另一種方式來實現這一目標是在格式打開PHP文件所產生UTF-8含量(無BOM),然後保存它們UTF-8使用BOM記事本++(編碼 - >在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文件

相關問題