|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
Windows XP, сайт с кодировкой utf-8. Например, имя файла "fiancée" в БД так и сохраняется, но когда я сохраняю файл в папке (на сервере), имя меняется на "fiancГ©e". Можно ли как-то сохранить этот файл с правильным названием "fiancée"? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 16:11 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
В какой кодировке имя файла? В какой кодировке читаете список файлов в файловой системе? Либо всё на utf-8 переводите, либо (предпочтительнее) откажитесь от использования не-латиницы в именах файлов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 16:15 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
Вообще, по идеи :), и чтение, и запись—всё происходит на utf-8. Проблема возникает только при сохранении файла на сервере. В БД он хранится с именем "fiancée", а на сервер записывается с "fiancГ©e". Странно, но чтобы обратится к этому файлу я использую: Код: php 1.
А разве не должно было быть наоборот? Код: php 1.
vkle , возможности отказаться от не-латиницы нет :( ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 16:56 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
Rastrapovich, По большому счету, файловой системе по барабану, в какой кодировке передаете имя файла - ей человекопонятные имена не требуются. Какая последовательность байтов (минус небольшой список исключений) пришла - такую и запишет в файловый каталог, такую и отдаст при чтении списка. Как эту последовательность байтов трактовать - проблемы программиста, а не файловой системы. Возможно, программа, которую Вы используете для чтения имён файлов на сервере не понимает utf-8 или вовсе умеет понимать только однобайтовые кодировки. Ну... наверно есть смысл сменить программу-смотрелку на более адекватную. Вы уверены, что в cp1251 есть ента самая "é"? Не нашли? Забудьте тогда про 1251. Может, какая-нить однобайтовая западно-европейская подойдет... Rastrapovich vkle , возможности отказаться от не-латиницы нет :(Печально это. Удачи в сборе граблей! Это первые были, вероятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 18:44 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
В кодировке 1251 е с аксантом нету. Зато есть в кодировке хтмл: é ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 19:10 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
vkle , возможно, я неправильно понял Ваш совет: автороткажитесь от использования не-латиницы в именах файлов Суть такова, что эти файлы—это mp3-шные файлы, на которых записаны звучания соответствующих иностранных слов. В БД слова записываются как "fiancée", а на сервере сохраняются как "fiancГ©e". Всё работает: слова на серевере с сайта находятся без проблем. Просто чисто с эстетической точки зрения хотелось, чтобы и на серевере файлы хранились с оригинальными названиями. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 19:20 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
ShSergeВ кодировке 1251 е с аксантом нету. Зато есть в кодировке хтмл: é Я просто подумал, что если можно "вручную" создать файл "fiancée" в Windows (т.е. создать файл и назвать его "fiancée"), то, наверняка, должен и быть способ создать его при помощи php. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 19:26 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
RastrapovichВ БД слова записываются как "fiancée", а на сервере сохраняются как "fiancГ©e".Не гуд. В базу пишите в одной записи оригинальное имя файла "fiancée" и имя, под которым хранится этот файл на сервере, например "8172398665734723" (случайным образом сгенерированное из допустимых символов уникальное имя) или "4e066bd75423441e28ae6e11d7e58364" (хеш md5 от слова "fiancée"). Если требуется отдать файл клиенту для сохранения, тогда оба поля достаете из базы, по одному обращаетесь к файлу для чтения, по другому - отдаете имя файла для сохранения на клиенте. RastrapovichПросто чисто с эстетической точки зрения хотелось, чтобы и на серевере файлы хранились с оригинальными названиями.В принципе, любая ОС и ФС, которые нормально поддерживают utf-8, это умеют. Почти у всех линуксов нынче дефолтовая utf-8. Это касаемо эстетики. Теперь о граблях чисто технических. А ну как придется Вам перекинуть файлы на другой сервер по FTP - тут сюрпризы будут через раз, зависит и от серверов и от FTP-клиента. Хорошо, если будет возможность потрахтибидохаться и настроить правильно передачу "этих ваших крякозябриков" так, чтоб на новом сервере более-менее читаемые крякозябрики не превратились в тупые никак не читаемые вопросики. А если возможности для трахтибидоха экспериментов не будет - тады как? Или придется переехать на FreeBSD, где юникод можно, конечно, настроить, но традиционно дефолтовая кодировка таки однобайтовая до сих пор. Или (тьфу-тьфу-тьфу) на виндовый сервер... И тут вся Ваша "эстетика" всем своим не-латинским составом гордо шагает коту под хвост. Ну, на фряхе то при желании любую кодировку в консоли настроите без особых проблем, а на винде - не скажу, не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 19:57 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
Rastrapovich, Для винды родная UTF-16 - ее и используй при сохранении, только функцию API тоже надо вызывать Юникодного варианта CreateFileW (Unicode) а не CreateFileA (ANSI) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 21:03 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
vkle , да, Вы правы. Лучше всё в цифры перевести: цифры, они и в Африке цифры! Спасибо! Siemargl , +1, хм, а я раньше думал, что Windows использует cp1251/Windows-1251. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 22:27 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
Rastrapovichа я раньше думал, что Windows использует cp1251/Windows-1251. а немецкая винда тоже в 1251? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 22:35 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
Изопропил, :)) как-то не подумал про винду на других языках )) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 22:41 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
Rastrapovichа я раньше думал, что Windows использует cp1251/Windows-1251.Ага. А ещё местами cp866 и местами юникод. Для разнообразия в реестр загляните - там вообще кое-где текст представлен в бинарном виде. Адская смесь, в общем. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 22:47 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
vkle , :)) дааа... век живи—век учись! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2017, 22:53 |
|
В названии файла при сохранении в Windows появляются кракозябры
|
|||
---|---|---|---|
#18+
SiemarglRastrapovich, Для винды родная UTF-16 - ее и используй при сохранении, только функцию API тоже надо вызывать Юникодного варианта CreateFileW (Unicode) а не CreateFileA (ANSI)CreateFileW из PHP? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2017, 07:48 |
|
|
start [/forum/topic.php?fid=23&msg=39460664&tid=1460621]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 146ms |
0 / 0 |