PHP5 и кодировка cp1251
Добавлено: 2010-11-05 12:36:24
День добрый.
Занимаюсь переносом сайта с Windows на freebsd.
Сайт удачно переехал, но обнаружил проблему которую не могу побороть.
Под виндой умные люди на сайт выкладывали картинки с русскими именами.
Похоже что админка сайта их не понимала, или по каким то другим причинам, эти файлы были сохранены на диск c именами в кракозябрах (в UTF-8).
В этих же кракозябрах видны в ссылках на эти картинки непосредственно на сайте под виндой.
Под freebsd сайт говорит что не может найти на диске нужного файла.
Сайт писан на PHP с использованием шаблонизатора smarty.
Там задейстрован Mysql и т.д.
Конечно было бы логично переименовать файлы и изменить в MYSQL ссылки на файлы, но в MYSQL эти ссылки хранятся в таком виде, что задача превратится в очень большую проблему (в базе ссылки и имена файлов текст, все в перемешку).
Так же можно через админку на текущем, рабочем сайте, переименовать эти картинки и загрузить назад на сайт.
Но их много, они лежат в разных местах и т.д. получится очередная проблема.
Выход один, если он возможен... Заставить сайт видеть то что уже есть на диске.
Имена файлов в UTF-8, при помощи convmv могу переименовывать в любую кодировку, но мне нужно видить то что лежит на диске в UTF-8, в кодировке винды cp-1251.
Если я через putty в mc смотрю на диск в кодировке cp1251 то вижу нужные мне имена этих корявых файлов.
Подскажите как заставить PHP смотреть на диск в cp1251?
Примеры из Google пробовал - не помогло ...
Может шаблонизатор сайта как то перекрывает мои настройки php ...
Занимаюсь переносом сайта с Windows на freebsd.
Сайт удачно переехал, но обнаружил проблему которую не могу побороть.
Под виндой умные люди на сайт выкладывали картинки с русскими именами.
Похоже что админка сайта их не понимала, или по каким то другим причинам, эти файлы были сохранены на диск c именами в кракозябрах (в UTF-8).
В этих же кракозябрах видны в ссылках на эти картинки непосредственно на сайте под виндой.
Под freebsd сайт говорит что не может найти на диске нужного файла.
Сайт писан на PHP с использованием шаблонизатора smarty.
Там задейстрован Mysql и т.д.
Конечно было бы логично переименовать файлы и изменить в MYSQL ссылки на файлы, но в MYSQL эти ссылки хранятся в таком виде, что задача превратится в очень большую проблему (в базе ссылки и имена файлов текст, все в перемешку).
Так же можно через админку на текущем, рабочем сайте, переименовать эти картинки и загрузить назад на сайт.
Но их много, они лежат в разных местах и т.д. получится очередная проблема.
Выход один, если он возможен... Заставить сайт видеть то что уже есть на диске.
Имена файлов в UTF-8, при помощи convmv могу переименовывать в любую кодировку, но мне нужно видить то что лежит на диске в UTF-8, в кодировке винды cp-1251.
Если я через putty в mc смотрю на диск в кодировке cp1251 то вижу нужные мне имена этих корявых файлов.
Подскажите как заставить PHP смотреть на диск в cp1251?
Примеры из Google пробовал - не помогло ...
Может шаблонизатор сайта как то перекрывает мои настройки php ...