Папки на русском

cDLEON

Онанист РНРСlub
Вообще кодировка, в которой приходит русский URL из браузера, это UTF-8.
А вот кодировка имён файлов в файловой системе - для *nix это UTF-8, а для windows, в большинстве случаев, для файлов с русским текстом - это cp1251.
Т.е. для возможности чтения из этого файла нужно перекодировать название файла из UTF-8 в windows-1251
 

kokosani

Новичок
зачем? есть какая-то причина по которой нельзя их переименовать латиницей?

не интересно. ни разу такого не видел и надеюсь не увижу
Причина в том, что я русский знаю лучше чем английский и подозреваю, что я такой не один.
 

kokosani

Новичок
A1x
Завидую ;)

Юзеры неконтроллируемо загружают картинки на сервер, сервер под Виндой и так далее. Русских файлов словить несложно, особенно если они грузятся чужими дядями в обход cms.
kokosani
Нужно явно преобразовать строку в системной байтовой кодировке (cp1251 для русской винды или KOI8-R для некоторых unix) при выводе .

PHP:
iconv('cp1251','utf-8//ignore',$filename);
Для изготовления маски для glob'а - преобразование обратное.
Какую строку - файл выдает ворнинг в браузере:
Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Unknown: Failed opening required 'C:/Apache2/htdocs/САЙТ ПО МАТЕМАТИКЕ/1.htm' (include_path='.;C:\php5\pear') in Unknown on line 0
 

kokosani

Новичок
При чем тут KOI-8? Эта кодировка нигде не используется.
Далее, однобайтовых кодировок много, не только 1251(другие языки).

Кстати, имя файла кодируется в кодировке страницы. Поэтому хз в чем проблема.
Причем здесь кодировка страницы?
 

kokosani

Новичок
если серьезно - зависит от софта, который веб-сервер и от версии винды,
т.е. нужно подобрать кодировку методом научного тыка.
может быть, надо конвертировать, а может, и нет
причем, выяснить это предстоит ТСу самостоятельно, это случай глупости и жлобства, и на самом деле неинтересен
Как это я название папки дам в utf-8 в виндеХР? ТСу? "это случай глупости и жлобства, и на самом деле неинтересен" - безосновательно, а значит действительно не интересно.
 

kokosani

Новичок
Вообще кодировка, в которой приходит русский URL из браузера, это UTF-8.
А вот кодировка имён файлов в файловой системе - для *nix это UTF-8, а для windows, в большинстве случаев, для файлов с русским текстом - это cp1251.
Т.е. для возможности чтения из этого файла нужно перекодировать название файла из UTF-8 в windows-1251
Может наоборот? А из браузера необязательно utf-8, может приходить и 1251.
 

ksnk

прохожий
Сверху