Aptana 3-CFEclipse-.cfm文件-UTF-8编码不正确



我使用Aptana 3中CFEclipse的CFML编辑器创建了以下.cfm文件:

<!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文件的顶部,但对于我正在开发的网站,我无法实现对每个页面都这样做,我曾尝试将其添加到页眉include中,但这不起作用。

如果我将文件保存为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

您别无选择。如果CFM文件中有UTF-8(或者基本上是任何"非ASCII"~(内容,则需要告诉CF编译器该文件是如何编码的(使用CFPROCESSINGDIRECTIVE,正如您所做的那样(。

由于这需要在编译时完成,因此无法通过在Application.cfc或任何"上游"CFM文件中放置标记来实现,因为"未扩展性"是在运行时确定的,而不是在编译时确定的。

总的来说,CFM文件中很少有非ASCII文本,因为CFM应该是相当多的代码,而不是内容或数据。也就是说,我意识到这并不总是可能的。

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 £. 

显然,您的板条箱.cfm文件并不是真正的UTF8。CFEclipse不处理文件编码,至少我还没有看到这样的设置。但是Eclipse有能力定义每个资源的编码(文件/属性(,Aptana中有这样的东西吗(已经有一段时间没有使用了(?

尝试放置

<cfprocessingdirective pageencoding="utf-8" />

在应用程序顶部附近。fc

最新更新