powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / файл с именами файлов на кирилице и сами файлы - как привести в соответствие
4 сообщений из 4, страница 1 из 1
файл с именами файлов на кирилице и сами файлы - как привести в соответствие
    #38091395
Фотография ILL HEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в zip-e файлы изображений и файл с их именами на кириллице
принимаю на сервере, разархивирую
делаю транслит содержимому файла с именами и сохраняю в бд - транслит работает
пытаюсь сохранить файлы изображений под именами в транслите от их оригинальных имен - не получается имя в utf-8

подскажите как реализовать. пробовал iconv('windows-1251','utf-8',$file_name) - мимо

например
Код: plaintext
1.
2.
- имя файла в русской win7: 'ф 0.jpg'
- echo дает кракозябру (в utf кодировке страницы): '� 0.jpg'
- iconv('windows-1251','utf-8',$file): 'д 0.jpg'

пробовал в шеснадцатиричный перевести и по нему понять
тут _http://www.artlebedev.ru/tools/decoder/advanced/ тоже пробовал - не получается
...
Рейтинг: 0 / 0
файл с именами файлов на кирилице и сами файлы - как привести в соответствие
    #38091396
Фотография ILL HEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или нужно уже в файле имён иметь транслит? локали же могут отличаться - замучаешся переводить ) или есть какая то отмычка к кодировке имени?
...
Рейтинг: 0 / 0
файл с именами файлов на кирилице и сами файлы - как привести в соответствие
    #38091489
Фотография ILL HEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
промежуточное решение (из инета)

Код: plaintext
1.
2.
3.
4.
- массив имен кодовых страниц CP('utf-8', 'ISO-8859-5', 'windows-1251')
- в цикле по CP
  - iconv из CP[i] в CP[i]
  - результат двоично (через md5) сравнивается с исходной строкой
  - если совпадение, то CP[i]

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
function get_str_cp($str){
    $arrCP = array('utf-8', 'ISO-8859-5', 'windows-1251'); // предполагаемые кодировки по приоритету
    foreach ($arrCP as $key=>$cp){
        if (md5($str) === md5(iconv($cp, $cp, $str))){
            return $cp;
        }
    }
    return null;
}


имя файла 'ф 0.jpg' правильно распознала. в результате правильный транслит - 'f_0.jpg'
более надежные способы (статистические) хотят длинный текст, но имя файла короткое. хотя файлов много, можно бы и набрать из имен большой текст
пока такой костыль
...
Рейтинг: 0 / 0
файл с именами файлов на кирилице и сами файлы - как привести в соответствие
    #38091492
Фотография ILL HEAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы: распознала как 'ISO-8859-5' . но что делать если придет файл из "левой" локали ...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / файл с именами файлов на кирилице и сами файлы - как привести в соответствие
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]