ColdFusion, CFDirectory и французский
У нас есть система управления файловой библиотекой ColdFusion, которая снимается со старого сервера ColdFusion 4 и переносится на новую систему, основанную на ColdFusion 8.
Все наши файлы и папки на английском, французском и испанском языках.
Использование CFDirectory в CF8 для загрузки и отображения этих файлов и папок вызывает две проблемы с французскими и испанскими файлами и папками, но эти две проблемы, вероятно, связаны.
- Каталоги с акцентированными символами не возвращаются из cfdirectory.
- Файлы с акцентированными символами отображаются с ног на голову? вместо акцентированного символа.
Серверы Solaris 10 с веб-серверами SunONE 6.1
Обновить
Теперь мы сузили проблему до JVM. Файловая система выглядит хорошо, но мы получаем ту же проблему с файлами и каталогами, если мы включаем класс Java, который использует базовый ввод-вывод файла Java.
Буду признателен за любые предложения о том, как исправить это в JVM
3 ответа
Я не нашел ничего конкретного для вашей проблемы, но я увидел эту заметку в заметках о выпуске для версии 6:
Вы не можете использовать
cfinclude
включить файл с двухбайтовым именем файла.
Нет указаний на то, было ли это исправлено. Я не уверен, но я предполагаю, что "двухбайтовые" имена файлов относятся к использованию Unicode, который, я полагаю, вам нужно использовать для получения акцентированных символов в именах файлов... так что это может быть каким-то образом связано с вашей проблемой,
Если вы не можете просто переименовать файлы, чтобы удалить акцентированные символы, я бы порекомендовал зарегистрировать ошибку в официальной базе данных ошибок ColdFusion.
Проблема может заключаться в том, что символы в каталогах, создаваемых CF 4, не являются юникодом... на самом деле, если CF4 создал их, я могу в значительной степени гарантировать, что они не таковы, потому что CF до 6 не знал Unicode или utf-8 из дыры в земле. Это часто заканчивалось использованием некоторых странных кодировок. С другой стороны, CF6+ предполагает, что почти все - это utf-8.
Я считаю, что это ваша проблема с ОС.
Я использую редакцию CF8 dev на Ubuntu с украинским языком и могу делать следующие вещи.
Список каталогов с двухбайтовыми символами:
<cfset path = "/home/trovich/docs/журнали/" />
<cfdirectory action="list" directory="#path#" name="qGetDirectory" />
<cfinclude template="файл_з_іїґ.cfm">
Файл file_з_іїґ.cfm содержит следующий код:
<cfoutput>
<cfloop query="qGetDirectory">
#qGetDirectory.name#<br>
</cfloop>
</cfoutput>
И результат следующий:
Акция
Ї
RING0
root#ua
PHP!nside
Phrack Magazine
phparchitect
Бійцівський Клуб
Bricolage
Друшляк
Ничего не пропустил, включи работает отлично.
PS Надеюсь, ваш браузер будет правильно отображать символы Unicode.