2011-10-06 57 views
2

我創建使用CFEclipse的CFML編輯以下.CFM文件中的Aptana 3:集錦3 - CFEclipse - .CFM文件 - UTF-8編碼不正確

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

    <title>templates</title> 

</head> 

<body> 
£ 
</body> 
</html> 

我的工作區編碼設置爲UTF- 8,但是當我在瀏覽器中保存並查看文件時,我的英鎊符號已更改爲英鎊。

我可以通過添加

<cfprocessingdirective pageencoding = "utf-8"/> 

我的CFM文件的頂部解決這個問題,但對於網站我的工作,我不能realisticly做的每一頁,我已經嘗試添加它到頁眉包括但不起作用。

如果我將文件保存爲HTML文件或使用記事本utf-8保存文件,井號很好,所以它似乎與Aptana中CFEclipse插件的CFML編輯器有關。有沒有人遇到過這個問題,或有任何想法如何解決它?

感謝

EDIT(由字符集頭):

HTTP/1.1 200 OK 
Date: Thu, 06 Oct 2011 13:26:11 GMT 
Server: Apache/2.2.17 (Win32) PHP/5.3.4 JRun/4.0 
Set-Cookie: CFGLOBALS=urltoken%3DCFID%23%3D12703%26CFTOKEN%23%3D40776140%23lastvisit%3D%7Bts%20%272011%2D10%2D06%2014%3A26%3A11%27%7D%23timecreated%3D%7Bts%20%272011%2D10%2D04%2017%3A05%3A01%27%7D%23hitcount%3D314%23cftoken%3D40776140%23cfid%3D12703%23;expires=Sat, 28-Sep-2041 13:26:11  GMT;path=/ 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Transfer-Encoding: chunked 
Content-Type: text/html; charset=UTF-8 

GET /enc_test3.cfm HTTP/1.1 
Host: www.foo.co.uk 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-gb,en;q=0.5 
Accept-Encoding: gzip, deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Connection: keep-alive 
+0

您的Web服務器是否設置了任何衝突的字符集標題? –

+0

我不這麼認爲,除非測試區分大小寫。我已經包含了頁面請求標題,是否足以檢查? –

+0

請求頭文件不夠,但由於您還添加了_response_頭文件,這就夠了。 ;)我沒有意識到任何情況下的問題,但是我更多地認爲你可能在IIS上,並且在那裏推出了一個iso-8859頭文件 - 但事實並非如此。 –

回答

-1

嘗試把

<cfprocessingdirective pageencoding="utf-8" /> 

靠近你的Application.cfc頂部

+0

我相信這個指令只能在每個模板中使用 – Sergii

+0

在這裏您可以找到更多信息:http://mysecretbase.com/ColdFusion_and_Unicode .cfm –

+0

-1抱歉,CFPROCESSINGDIRECTIVE是一個編譯指令,而不是運行時指令,所以如果要使用它,它需要進入每個需要它的文件。 –

0
My Workspace encoding is set to UTF-8, but when I save and view the file in a browser my pound sign has changed to £. 

顯然,你的crated .cfm fil ES並不是真正的UTF8。 CFEclipse不處理文件編碼,至少我沒有看到它的這種設置。但是Eclipse有能力定義每種資源的編碼(文件/屬性),Aptana中有沒有這樣的事情(有一段時間沒有用過)?

+0

是的,Aptana中的每個文件編碼與Eclipse中的編碼相同,這表明.cfm f ile也是UTF-8。 –

1

你別無選擇。如果你的CFM文件中有UTF-8(或者基本上是任何「非ASCII」〜)內容,你需要告訴CF編譯器該文件是如何編碼的(使用CFPROCESSINGDIRECTIVE,就像你已經完成了一樣)。因爲這需要在編譯時完成,所以無法通過在您的Application.cfc或任何「上游」CFM文件中添加標籤來工作,因爲「非重複性」是在​​運行時確定的,而不是編譯時間。

總的來說,在CFM文件中使用非ASCII文本應該是一個難題,因爲CFM應該是非常多的代碼,而不是內容或數據。這就是說,我意識到這並非總是可行的。

+0

爲什麼你需要'這個指令?正確的UTF8 .cfm模板可以與任何非ASCII字符完美協同工作,ACF9和Railo 3無需任何其他指令。問題出現在模板/編輯器中。 – Sergii

+0

在使用Dreamweaver之前,我從來沒有遇到過編碼問題,所以我在Sergii中遇到問題,必須使用模板/編輯器。 –