Русские имена фалов

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)