Русские имена фалов
Added by Kostya K 4 months ago
Очень нужно чтобы отображались файлы не только с названиями на латинице,
но и на русском языке (cp1251).
И чтоб можно было загружать/переименовывать файлы на русском языке и они корректно
сохранялись в кодировке cp1251.
Подскажите, какую функцию надо править в файле elFinder.class.php ?
Если есть готовый рецепт, пожалуйста, подскажите?
На самой странице и везде в моих скриптах использую UTF-8.
Спасибо.
Replies (5)
RE: Русские имена фалов
-
Added by Troex Nevelin 4 months ago
Смотрите тему Транслитерация имен файлов и папок возможно она вам поможет, так же можете почитать #485
Ищите все места где происходит работа с файлами и думайте как добавить конвертацию кодировок, но устите сразу JSON требует чтобы данные были закадированны в UTF-8, то есть вам придётся делать двойную конвертацию при работе с файлами и обратную при чтении имен файлов.
RE: Русские имена фалов
-
Added by Kostya K 4 months ago
Я сделал так
version: 1.2 (2011-06-25)
Файл elFinder.class.php
463 строка: } elseif (!rename($target, $dir.DIRECTORY_SEPARATOR. mb_convert_encoding ($name, 'cp1251', 'utf-8') )) { //Моя правка
603 строка: $name = $this->_checkName( mb_convert_encoding ( $_FILES['upload']['name'][$i], 'cp1251', 'utf-8') ); // Моя правка
1005 строка: 'name' => htmlspecialchars( mb_convert_encoding ( basename($path), 'utf-8', 'cp1251') ), // Моя правка
1070 строка: 'name' => $path == $this->_options['root'] && $this->_options['rootAlias'] ? $this->_options['rootAlias'] : mb_convert_encoding ( basename($path), 'utf-8', 'cp1251'), // Моя правка
Кодировка имён файлов на локальной машине cp1251
Эти правки не решают всех проблем, буду искать дальше, но на сегодня хватит )))
RE: Русские имена фалов
-
Added by Kostya K 4 months ago
Я уже читал мнение по поводу «не разводить зоопарк».
Но может добавить в настройках возможность указывать кодировку имён файлов, применяемую на сервере?
RE: Русские имена фалов
-
Added by Troex Nevelin 4 months ago
Нет, нет и ещё раз нет по поводу кодировок, тем более если вы посмотрите на elFinder 2 - то там есть поддержка "драйверов", которые в качестве хранилища позволяют использовать файловую систему, MySQL и FTP и возможно другие в будущем. Так же одна из причин это переход (наконец-то) к полной поддержки utf-8 в php 5.4. CP1251 - что-то вроде файлового формата 8.3, который использовался в DOS. Я не спорю что CP1251 ещё активно используется, но это скорее наследие прошлого нежели современный стандарт
RE: Русские имена фалов
-
Added by Kostya K 4 months ago
Troex Nevelin wrote:
Я не спорю что CP1251 ещё активно используется, но это скорее наследие прошлого нежели современный стандарт
Тут не поспоришь.
(1-5/5)