Aptana 3 - CFEclipse - файл .cfm - неверная кодировка UTF-8 - PullRequest
2 голосов
/ 06 октября 2011

Я создал следующий файл .cfm с помощью CFML-редактора CFEclipse в Aptana 3:

<!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, но для веб-сайта, над которым я работаю, я не могу сделать это реалистично для каждой страницы, и я попытался добавить его в заголовок страницы, но это не работает.

Если я сохраню файл как файл HTML или сохраню файл с помощью блокнота utf-8, знак фунта будет в порядке, поэтому он, похоже, связан с редактором CFML плагина CFEclipse в Aptana. Кто-нибудь сталкивался с этой проблемой раньше или есть идеи, как ее решить?

Спасибо

РЕДАКТИРОВАТЬ (добавлены заголовки кодировки):

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

Ответы [ 3 ]

1 голос
/ 06 октября 2011

У вас нет выбора.Если в ваших файлах CFM есть содержимое UTF-8 (или, по сути, любое содержимое, не относящееся к ASCII ~), вам нужно сообщить компилятору CF, как файл кодируется (с помощью CFPROCESSINGDIRECTIVE, как вы это сделали).

Поскольку это необходимо сделать во время компиляции, он не может работать, помещая тег в ваш файл Application.cfc или любой «исходящий» файл CFM, потому что «неконтролируемость» определяется во время выполнения, а не во время компиляции.

В целом, редко встречается текст, не относящийся к ASCII, в файле CFM, потому что CFM должен быть в значительной степени кодом, а не содержимым или данными.Тем не менее, я понимаю, что это не всегда возможно.

0 голосов
/ 06 октября 2011
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 (не использовала ее некоторое время)?

0 голосов
/ 06 октября 2011

Попробуйте поставить

<cfprocessingdirective pageencoding="utf-8" />

в верхней части вашего Application.cfc

...