|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.03.2015, 15:44 | #1 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Apache и кодировка в именах файлов
Добрый день.
помогите, пожалуйста, разобраться с таким вопросом. Есть сервер с Apache (под Ubuntu - это важно!). на нём лежат файлы. Они нормально отдаются/скачиваются. Поставил себе сервер локально под Windows 7. Те же файлы скрипт видит. Но скачать их нельзя. Проблема понятно в чём - в кодировке. в настройках апача стоит кодировка по умолчанию UTF-8 (в .htaccess AddDefaultCharset UTF-8) в php такой код: Код:
Или просто забить? Ибо рабочий сервак под Ubuntu работает как надо, а локальный нужен для отладки/разработки... p.s. для того, чтобы можно было посмотреть на проблему "живьём" прикрепляю маленький архив, в нём три файла: .htaccess test.php Test Р*СѓСЃСЃРєРѕРµ наименование файла.txt (последний файл - это "Test Русское наименование файла.txt" в кодировке UTF-8) ещё раз хочу отметить. Эти же файлы, размещённые на сервере под Ubuntu отрабатывают без всяких вопросов, под Windows - не работают. Заранее благодарен за ответы/помощь. |
13.03.2015, 17:47 | #2 |
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
Хм... Сергей, попробуйте изменить кодировку на локальном сервере на Windows-1251.
И ещё дам совет. У Вас написано Код:
В частности: для < - < и для > - > Имеется в виду в том php файле, где у Вас этот код написан Последний раз редактировалось Вадим Мошев; 13.03.2015 в 17:49. |
13.03.2015, 18:41 | #3 |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Переименовать файл Test Р*СѓСЃСЃРєРѕРµ наименованиефайла. txt
002.PNG в Test Русское название файла.txt, как ни странно, работает. Возможно, при сохранении файла по каким-то причинам в названии кодировка слетела. Как вариант, ещё можно попробовать iconv. Оба файла Test.php и текстовый файл в UTF-8 изначально. Или там есть файлы в Windows-1251? Последний раз редактировалось Streletz; 13.03.2015 в 18:43. |
14.03.2015, 03:56 | #4 |
Участник клуба
Регистрация: 19.01.2009
Сообщений: 1,453
|
Тут дело скорей всего не в локальном серваке, он будет любую кодировку которая есть на винде.
Предположу что скачивал файлы наверно с помощью FileZilla - дело в том, что в нем надо принудительно задавать кодировку utf-8 и передачу фалов в двоичном формате и тогда все будет нормально. |
14.03.2015, 09:45 | #5 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
А сами файлы у тебя в какой кодировке? Чем ты их редактиш?
Alar, верни репу!
|
14.03.2015, 16:57 | #6 |
Ваш К. О.
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,775
|
Таки да. Под Windows нужно сохранять файлы так, чтобы они нормально выглядели в самой Windows. За столько лет программы уже научились получать Юникод-имя файла из системы и преобразовывать его в UTF-8 самостоятельно. Apache в том числе, я полагаю. Работает ведь.
99% инструкций по установке и настройке в этих ваших интернетах -- бесполезное старье. |
17.03.2015, 11:17 | #7 | ||||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Молчал в теме, потому как пытался осмыслить, сказанное и разобраться с проблемой.
Но, видимо, мне это не судьба понять всю эту шнягу! Цитата:
Но это к сути проблемы отношения не имеет. можно и так написать: Код:
Цитата:
Цитата:
выдаётся - File .... not exist! Т.е. для локального сервера он НЕ ВИДЕН (это выяснил почему - потому что скрипт PHP в формате UTF-8. если скрипт переделать в кодировку 1251 - то file_exists - работает!). во-вторых, файл с подобным именем загружается скриптом (пример скрипта во вложении upload.php). Цитата:
если речь про загружаемые файлы - то это вообще бинарные файлы (doc, docx, pdf и т.д. тут в примере txt я выбрал исключительно для наглядности. Хотите, вместо него jpg возьму?). Вообще не знаю, куда копать и что делать! p.s. господа-товарищи программисты. Спасибо большое за то, что не бросаете меня в этом омуте. Я тут уже давно себе все мозги заплёл, туплю конкретнейше!!! А пока склоняюсь к тому, что невозможно один и тот же код иметь и для Windows и для Unix/Linux, более того, по простому передать сайт так, чтобы он у меня работал локально под Windows - не получается. А по сложному - смысла нет. Ибо целевое назначение - это всё таки unix-подобная платформа. p.p.s. если кодировку файла upload.php поменять на 1251, то файл начинает загружаться на сервер в "нормальном" виде! Последний раз редактировалось Serge_Bliznykov; 17.03.2015 в 11:39. |
||||
17.03.2015, 14:37 | #8 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Цитата:
PHP код:
|
|
17.03.2015, 16:56 | #9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Streletz, спасибо за идею/совет, попробую конвертить...
Добавлено через 9 минут докладываю. да, работает. если upload'ить файл из скрипта в кодировке UTF-9, то чтобы файл был в "родной" кодировке, можно так: Код:
Последний раз редактировалось Serge_Bliznykov; 17.03.2015 в 17:08. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как выбрать файлы по дате в именах и заархивировать их? | GorSHOK1 | Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) | 4 | 21.10.2015 22:04 |
кодировка на apache | acteralex | PHP | 0 | 10.07.2012 22:45 |
сбой в именах файлов | Tadjik | Операционные системы общие вопросы | 1 | 27.09.2010 11:13 |
Что означает буква A в именах параметров? | mutabor | Общие вопросы Delphi | 12 | 28.03.2010 11:12 |
IdFTP and CharSet (кодировка имен файлов) | X11 | Работа с сетью в Delphi | 2 | 26.01.2010 12:21 |