2013-08-06 4 views
0

The Railo < Код cfloop file = "..." > явно предназначен для поддержки атрибута charset = "...", потому что он говорит так же, как и в сообщение об ошибке, если используется незаконный атрибут.Является ли атрибут charset для cfloop над файлом правильно работать в Railo

Если я использую cfloop для чтения строк из кодированного файла UTF-8 без атрибута charset, он работает правильно, но я не знаю почему. Я бы предпочел быть явным и state charset = "utf-8", но я не уверен, что это имеет какой-то эффект.

Причина в том, что я ожидаю, что явное указание charset = "windows-1252" или charset = "iso-8859-1" приведет к поломке ввода из кодированного файла UTF-8, но вместо этого он продолжит работу правильно. Кажется, что charset = "..." не вызывает ошибку, но и не имеет никакого эффекта.

Мне остается задаться вопросом, будет ли правильный синтаксический разбор UTF-8 без явной кодировки продолжать работу завтра или на другой машине.

Является ли UTF-8 кодировкой по умолчанию для cfloop? Если нет, можно ли гарантировать, что кодировка UTF-8 будет использоваться?

Решения, которые не связаны с изменением свойства JVM file.encoding по умолчанию, были бы предпочтительнее.

ответ

1

Я решил это после того, как выкапывал источник Railo. Атрибут charset не игнорируется (обычно). Файл UTF-8, который я использовал, имел знак байта (BOM), хотя я явно просил, чтобы мой редактор сохранил его без него. Оказывается, атрибут charset равен, игнорируется, если есть спецификация, и это не совсем необоснованное поведение.

Если спецификация отсутствует, атрибут charset = "utf-8" гарантирует, что правильная кодировка по умолчанию используется независимо от настройки свойства System.file.encoding.