powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / В названии файла при сохранении в Windows появляются кракозябры
16 сообщений из 16, страница 1 из 1
В названии файла при сохранении в Windows появляются кракозябры
    #39460546
Rastrapovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Windows XP, сайт с кодировкой utf-8.
Например, имя файла "fiancée" в БД так и сохраняется, но когда я сохраняю файл в папке (на сервере), имя меняется на "fiancГ©e".
Можно ли как-то сохранить этот файл с правильным названием "fiancée"?
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460551
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В какой кодировке имя файла? В какой кодировке читаете список файлов в файловой системе?

Либо всё на utf-8 переводите, либо (предпочтительнее) откажитесь от использования не-латиницы в именах файлов.
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460583
Rastrapovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вообще, по идеи :), и чтение, и запись—всё происходит на utf-8. Проблема возникает только при сохранении файла на сервере.
В БД он хранится с именем "fiancée", а на сервер записывается с "fiancГ©e".

Странно, но чтобы обратится к этому файлу я использую:
Код: php
1.
iconv("cp1251", "utf-8", $word)


А разве не должно было быть наоборот?
Код: php
1.
iconv("utf-8", "cp1251", $word)



vkle , возможности отказаться от не-латиницы нет :(
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460645
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rastrapovich,

По большому счету, файловой системе по барабану, в какой кодировке передаете имя файла - ей человекопонятные имена не требуются. Какая последовательность байтов (минус небольшой список исключений) пришла - такую и запишет в файловый каталог, такую и отдаст при чтении списка. Как эту последовательность байтов трактовать - проблемы программиста, а не файловой системы.

Возможно, программа, которую Вы используете для чтения имён файлов на сервере не понимает utf-8 или вовсе умеет понимать только однобайтовые кодировки. Ну... наверно есть смысл сменить программу-смотрелку на более адекватную.

Вы уверены, что в cp1251 есть ента самая "é"? Не нашли? Забудьте тогда про 1251. Может, какая-нить однобайтовая западно-европейская подойдет...


Rastrapovich vkle , возможности отказаться от не-латиницы нет :(Печально это. Удачи в сборе граблей! Это первые были, вероятно.
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460651
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В кодировке 1251 е с аксантом нету. Зато есть в кодировке хтмл: é
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460654
Rastrapovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle , возможно, я неправильно понял Ваш совет:
автороткажитесь от использования не-латиницы в именах файлов
Суть такова, что эти файлы—это mp3-шные файлы, на которых записаны звучания соответствующих иностранных слов.
В БД слова записываются как "fiancée", а на сервере сохраняются как "fiancГ©e".

Всё работает: слова на серевере с сайта находятся без проблем. Просто чисто с эстетической точки зрения хотелось, чтобы и на серевере файлы хранились с оригинальными названиями.
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460655
Rastrapovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeВ кодировке 1251 е с аксантом нету. Зато есть в кодировке хтмл: é
Я просто подумал, что если можно "вручную" создать файл "fiancée" в Windows (т.е. создать файл и назвать его "fiancée"), то, наверняка, должен и быть способ создать его при помощи php.
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460664
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RastrapovichВ БД слова записываются как "fiancée", а на сервере сохраняются как "fiancГ©e".Не гуд.
В базу пишите в одной записи оригинальное имя файла "fiancée" и имя, под которым хранится этот файл на сервере, например "8172398665734723" (случайным образом сгенерированное из допустимых символов уникальное имя) или "4e066bd75423441e28ae6e11d7e58364" (хеш md5 от слова "fiancée"). Если требуется отдать файл клиенту для сохранения, тогда оба поля достаете из базы, по одному обращаетесь к файлу для чтения, по другому - отдаете имя файла для сохранения на клиенте.


RastrapovichПросто чисто с эстетической точки зрения хотелось, чтобы и на серевере файлы хранились с оригинальными названиями.В принципе, любая ОС и ФС, которые нормально поддерживают utf-8, это умеют. Почти у всех линуксов нынче дефолтовая utf-8. Это касаемо эстетики.

Теперь о граблях чисто технических.
А ну как придется Вам перекинуть файлы на другой сервер по FTP - тут сюрпризы будут через раз, зависит и от серверов и от FTP-клиента. Хорошо, если будет возможность потрахтибидохаться и настроить правильно передачу "этих ваших крякозябриков" так, чтоб на новом сервере более-менее читаемые крякозябрики не превратились в тупые никак не читаемые вопросики. А если возможности для трахтибидоха экспериментов не будет - тады как?
Или придется переехать на FreeBSD, где юникод можно, конечно, настроить, но традиционно дефолтовая кодировка таки однобайтовая до сих пор. Или (тьфу-тьфу-тьфу) на виндовый сервер... И тут вся Ваша "эстетика" всем своим не-латинским составом гордо шагает коту под хвост. Ну, на фряхе то при желании любую кодировку в консоли настроите без особых проблем, а на винде - не скажу, не знаю.
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460688
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rastrapovich,

Для винды родная UTF-16 - ее и используй при сохранении, только функцию API тоже надо вызывать Юникодного варианта

CreateFileW (Unicode) а не CreateFileA (ANSI)
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460708
Rastrapovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle , да, Вы правы. Лучше всё в цифры перевести: цифры, они и в Африке цифры! Спасибо!


Siemargl , +1, хм, а я раньше думал, что Windows использует cp1251/Windows-1251.
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460713
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rastrapovichа я раньше думал, что Windows использует cp1251/Windows-1251.
а немецкая винда тоже в 1251?
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460714
Rastrapovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

:)) как-то не подумал про винду на других языках ))
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460718
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rastrapovichа я раньше думал, что Windows использует cp1251/Windows-1251.Ага. А ещё местами cp866 и местами юникод. Для разнообразия в реестр загляните - там вообще кое-где текст представлен в бинарном виде. Адская смесь, в общем.
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39460719
Rastrapovich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle ,

:)) дааа... век живи—век учись!
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39461201
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglRastrapovich,

Для винды родная UTF-16 - ее и используй при сохранении, только функцию API тоже надо вызывать Юникодного варианта

CreateFileW (Unicode) а не CreateFileA (ANSI)CreateFileW из PHP?
...
Рейтинг: 0 / 0
В названии файла при сохранении в Windows появляются кракозябры
    #39461203
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / В названии файла при сохранении в Windows появляются кракозябры
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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