Форум
Написать нам
  • Страница 1 из 1
  • 1
Занятный вопрос о регистре букв
as-masterДата: Пятница, 26 Октября 2007, 11:30 | Сообщение # 1
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Как известно, операционной системе без разницы, прописными или строчными буквами написано имя файла. Если вы, к примеру, станете копировать в каталог, где есть файл с именем File.zip другой файл, с именем file.zip, то файл будет заменен на копируемый.

Однако в интернете это не так. Если на сервере находится http:\\...File.zip, а вы попытаетесь скачать его как http:\\...file.zip, то файл не будет найден :-(

И даже если расширение файла будет написано прописными буквами: http:\\...File.ZIP, то запрошенный файл не будет найден.

Почему так? Ведь если я стану заменять на сервере файл File.zip файлом file.ZIP, то он заменится однозначно, так как система справедливо полагает, что это один и тот же файл...


Да пребудет с вами ММВ!
 
RushДата: Воскресенье, 28 Октября 2007, 04:28 | Сообщение # 2
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Дело в том, что в Win и Unix разные правила. Unix различает регистр символов файловой системы.
Так как большинство серверов стоят на Unix-системах, то при запросе файла с сервера имеет значение регистр. Там спокойно могут быть и файл file.zip, и файл File.zip одновременно.

Quote (as-master)
если я стану заменять на сервере файл File.zip файлом file.ZIP, то он заменится однозначно, так как система справедливо полагает, что это один и тот же файл...

Именно что и не полагает. smile А почему заменяется файл на сервере с разными регистрами, причин может быть несколько:

1) Там стоит сервер с Win
2) Многие FTP-клиенты при закачке на сервер переводят регистр твоего файла в регистр уже имеющегося там файла.
3) На сервере установлены соответствующие скрипты.
4) Замена происходит не по имени, а по выбору. То есть, ты явно указываешь файл, который заменяется (например, выделяя его). Все зависит от организации работы на сервере и способа управления сайтом.
5) Кроме того, вполне возможен такой вариант: при добавлении файла, он и не заменяет вовсе файл с другим регистром, а просто добавляет его как новый.

Кстати, если вот так играться с разными регистрами в именах файлов своего сайта, неизбежны проблемы.
И получается иногда, что хорошо работающий на локальном компьютере сайт, перестает функционировать, когда выложишь его в интернете. Ссылки, обычно, начинают глючить, картинки пропадают.
И русские буквы лучше совсем не использовать в именах. Самая большая проблема: обращение к странице не в той кодировке, в которой она хранится на сервере. Например, если файл в кодировке win-1251, а браузер обращается в koi-8r. Ну и тому подобное.
Ну и напоследок - лучше не использовать очень длинные имена файлов. В некоторых осях они сильно ограничены по длине по сравнению с Win. В MacOS, например. Там она что-то около 30 символов (точно не помню).

А нам ведь хочется, чтобы наш сайт могли нормально просматривать не только те, у кого стоят форточки... smile

Сообщение отредактировал Rush - Воскресенье, 28 Октября 2007, 04:30
 
as-masterДата: Воскресенье, 28 Октября 2007, 09:23 | Сообщение # 3
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Вот это настоящий ответ знающего человека. Спасибо, всё понял.

Quote (Rush)
2) Многие FTP-клиенты при закачке на сервер переводят регистр твоего файла в регистр уже имеющегося там файла

Скорее всего, причина именно в этом. Я использую Total Commander в качестве FTP-клиента.

Quote (Rush)
И русские буквы лучше совсем не использовать в именах

Ну, еще бы я использовал русские буквы smile На своем компьютере - другое дело. А для сайта - совершенно исключено. Более того, с определенного момента я перестал и пробелы использовать в именах файлов, которые заливаю на сервер. А то с этим %20 тоже возникают нередко проблемы. Да и длину, разумеется, больше 30 символов никогда не сделаю.

А вот то, что в некоторых своих архивах я использовал когда-то и прописные буквы, я пожалел. Больше-то я постараюсь этого не делать, на всякий случай. Но те архивы, которые уже залиты, изменить нельзя: ссылки на них могут быть на других ресурсах интернета, и они перестанут работать. А мне бы этого не хотелось (например, файл программы Know Extension Pro я к сожалению обозвал KnowExt.zip, а надо было knowext.zip).


Да пребудет с вами ММВ!

Сообщение отредактировал as-master - Воскресенье, 28 Октября 2007, 09:24
 
Alex3AДата: Воскресенье, 28 Октября 2007, 19:37 | Сообщение # 4
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Rush совершенно прав, я давно взял себе за правило использовать только маленькие символы,
С русским тоже надо быть осторожным, не везде он адекватно воспринимается, был случай,
залить то залил, а вот удалить его потом не смог(хорошо что после каких то работ на серваке его имя
перевели в другую кодировку, и я смог его удалить). Кодировка то же имеет значение, внешне
вроде бы одна буква, а коды то разные.
Когда файл идет не в бинарном формате, всякая гадость норовит преобразовать его в свою
кодировку. Подобные вещи я встречал и при работе с базой данных.
 
as-masterДата: Воскресенье, 28 Октября 2007, 20:22 | Сообщение # 5
Разводящий
Группа: Модераторы
Сообщений: 2337
Репутация: 101
Награды: 5
Статус: Offline
Вот потому-то старые матерые пользователи до сих пор соблюдают даже систему 8+3 smile
Но уж по крайней мере русские-то буквы не используют, даже на своих компьютерах.








Да пребудет с вами ММВ!

Сообщение отредактировал as-master - Вторник, 30 Октября 2007, 10:46
 
  • Страница 1 из 1
  • 1
Поиск: