имена файлов, кодирующие проблему при миграции Приложения PHP от Windows Server 2003 до Linux

MODx дает Вам 100%-й контроль над HTML, включая HTML, что различные виджеты, плагины, и т.д. вывод, таким образом, качество вывода HTML полностью в рамках Вашего управления. Drupal является тем же путем, кроме того, что выходит из WYSIWYG-редакторов. Это - все плагины, так Вам решать для выбора того, который хорош для потребностей.

J.Ja

2
задан 22 August 2011 в 14:34
2 ответа

Наконец-то я нашел некоторую информацию о своей проблеме и способ ее решения. Компания, которая разрабатывает эти php-приложения, говорит мне использовать iso-8859-1 для обслуживания сохраненных файлов, настроив таким образом Apache. Это не решает мою проблему, но дает мне представление.

Я использовал convmv http://www.j3e.de/linux/convmv/man/ (спасибо Как узнать языковая кодировка имени файла в Linux? ) для преобразования имен файлов из utf-8 (я думаю, копия в debian делает их utf-8) в iso-8859-1 с

$ convmv -f utf-8 -t iso-8859-1 --no-test -r *

Это решает мою проблему, поскольку мои приложения теперь могу найти сохраненные файлы (перенесенные и новые).

Единственная проблема в том, что в моей оболочке я все еще неправильно вижу имена файлов:

$ ls 
test ��.xls

$ LANG=fr_FR.UTF-8 ls
test ??.xls

Но это «второстепенная» проблема.

ps : извините за исходный вопрос, который неправильно раскрыл проблему, и за то, что так поздно ответил на решение

0
ответ дан 3 December 2019 в 15:55

Windows обычно использует юникод для кодирования символов, отличных от ASCII, поэтому, если вы используете локаль юникода на сервере debian, вы настроены. Он не обязательно должен быть французским только потому, что символы, которые вы пытаетесь использовать, являются французскими (только что протестировали это, у меня LANG установлен на en_US.UTF-8, и я могу создать файл с указанным вами именем ( "accusé réception.pdf"), и это тоже отображается.

Скорее всего, акценты есть, они просто не могут быть отображены. Чтобы проверить эту теорию, замените эту команду "ls" на "LANG = en_US" .UTF8 ls ". Если он отображается правильно, это просто ваш терминал. Просто установите переменную LANG в файле запуска оболочки (например, .bashrc) или для всей системы в / etc / default / locale

0
ответ дан 3 December 2019 в 15:55

Теги

Похожие вопросы