CFdirectory с Coldfusion 11, проблема с не ascii символами в именах файлов

У меня есть вопрос, похожий на этот: ColdFusion, CFDirectory и французский, который не получил удовлетворительного ответа.

Мы перешли с Coldfusion 9 на Coldfusion 11. Пока что никаких серьезных проблем, кроме следующего:

При использовании CFdirectory для отображения имен файлов, которые содержат не-ASCII-символы в своих именах (например, акценты, умляуты), мы видим имя файла с заменяющими символами вместо правильного UTF-эквивалента. Например, файл с именем L'État, c'est moi.pdf отображается как L tat, c est moi.pdf.

Мы уверены, что это проблема Coldfusion, поскольку ничего не изменилось, кроме версии Coldfusion. С Coldfusion 9 CFdirectory работал нормально при перечислении одинаковых акцентированных имен файлов. Наша ОС - Redhat 7.0, и имена файлов также правильно отображаются на терминале с помощью команды ls. Я также создал быстрый PHP-скрипт, чтобы увидеть, может ли PHP правильно читать каталог с помощью команды "readdir", и там тоже нет проблем, имена файлов отображаются правильно.

Поэтому я считаю, что это проблема Coldfusion 11. Я добавил параметры -Dfile.encoding=UTF-8 -Dencoding=UTF-8 в настройки JVM из интерфейса сервера администрирования Coldfusion, но это не имело значения.

Любые предложения о том, как исправить это, будут оценены.

Пример используемого кода:

<cfdirectory
action="list"
directory="#ExpandPath( './' )#/pdfs"
listinfo="name"
name="qFile"
/>  
<cfdump
var="#qFile#"
label="All Files"
/>

Это вывод cfdump

3 ответа

Вы пробовали установить тег cfprocessingdirective?

<cfprocessingdirective pageencoding="utf-8">

CF 11 WikiDocs

Кроме того, в Chrome Network Inspector убедитесь, что кодировка возвращается правильно. Например:

Content-Type:text/html; charset=UTF-8

Если ваша среда Linux, вам нужна чистая конфигурация UTF-8.

Пожалуйста, посмотрите здесь.

У меня была такая же проблема, я просто добавляю в файл ~/.bashrc эти строки:

export LC_ALL=en_US.UTF-8 
export LANG=en_US.UTF-8 
export LANGUAGE=en_US.UTF-8

После этого не забудьте перезапустить ваш сервер Coldfusion

sudo /opt/coldfusion11/cfusion/bin/coldfusion restart

Пожалуйста, смотрите: Почему некоторые символы неправильно вводятся в SQL Server из CFQUERY?

Убедитесь, что ваш файл сохранен с кодировкой Unicode UTF-8.

Также убедитесь, что ваши аргументы JVM будут обрабатывать это. Администратор> Настройки сервера> Java и JVM. Добавьте " -Dfile.encoding=UTF-8" к аргументам.

введите описание изображения здесь

У меня была та же проблема, что и моя ошибка
/.bashrc LC_ALL="de_DE.UTF-8" в linux, и после изменения перезапустите приложение coldfusion

Другие вопросы по тегам