| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Определение кодировки системы |
| Автор: Honoo 8.4.2008, 09:18 |
| Доброе время суток! Подскажите, пожалуйста, как определить кодировку системы? Проблема в том, что сервер работает в отличной от сестемной кодировке и при выполнении file_exists() возвращается не правильный результат. Если, например, система в cp1251, а страница в utf-8 и в file_exits() передать параметр в utf-8, то функция сработает не правильно в случает, если название содержит кириллицу. Заранее благодарен. |
| Автор: mishaSL 8.4.2008, 09:46 |
Не нужно в названиях директорий и файлов использовать кириллицу. |
| Автор: Honoo 8.4.2008, 10:07 |
| Но это не выход в моем случае. На той страничке пользователь должен закачивать файл на сервер. И пользователь не вникает надо переименовывать в латиницу или не надо, он просто тупо выбирает файл и закачивает. |
| Автор: mishaSL 8.4.2008, 10:22 |
| Honoo, в данном случае необходимо делать следующим образом: При сохранении загруженного файла автоматически его переименовываешь (можны различные варианты: случайтое число; дата+случайное число; автоматическая транслитерация русских символов). Еще не забывай проверять на уже существование этого файла, т.к. если ты не переименовываешь файл и не проверяешь, а записываешь "как есть", то файлы с одинаковыми именами будут перезаписываться. |
| Автор: Honoo 8.4.2008, 10:31 |
| Такой вариант я использовал в другой части проекта, но в этой части пользователь дожен видеть имя файла, который закачал, таким какое оно было. Можно конечно задействовать базу, или рядом с закаченным и переименованным файликом хранить какой-нибудь тектовый файл с информацией о названии. В Linux можно узнать кодировку выполнив exec('local'). В windows так и не нашел пока ничего. Я хотел сделать так: 1. Узнать кодировку системы 2. Выполнять iconv() переменной, которая хранит путь к файлу. 3. И дальше уже выполнять необходиме операции file_exists(), is_file() и т.д. |
| Автор: mishaSL 8.4.2008, 11:31 | ||
http://ru.wikipedia.org/wiki/CP1251
Но всеже, ИМХО, это не лучший вариант. Добавлено через 2 минуты и 13 секунд Honoo, если так важно название файла, то храни ссылки на эти файлы в БД, отдельно название, отдельно ссылка на файл. |