[Тупик] Опять кодировка
Ребят, подскажите как решить.
Писал в ru_sysadmins, но там ответа так и не нашлось, так что попробую тут счастье попытать.
Поставил себе owncloud и мои потребности он полностью удовлетворяет, но есть один не очень приятный момент.
Если залить обозванный русскими буквами файл, а потом попытаться скачать его через IE(тестил только на 8 версии, т.к. ХР стоит), то имя загруженного файла получается кракозябрами. В вебе имя отображается правильно. При тех же условиях загрузив файл через хром получаем файл с вполне себе нормальными русскими буквами в имени. Казалось бы сиди себе и сиди на хроме, но мне обязательно нужно пользовать owncloud через IE.
Посмотрев на кракозябры можно сделать вывод что это UTF8 в кодировке win-1251.
UPD: В общем история так ничем и не закончилась. Куда копать не знаю. Через пару недель попробую поднять на каком нибудь CentOS... может быть это решит проблему и наведет на какие нибудь мысли.
UPD: Решил проблему с кириллицей заменой в файле lib/files.php следующей конструкции:
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
на
header('Content-Disposition: attachment; filename="'.rawurlencode($filename).'"');
Правда теперь есть проблема в том что перед именем файла появляются подчеркивания и имя файла становится вида "__Тест.doc"
Кто подскажет в чем проблема?
FreeBSD 7.4
Apache 2.2
OwnCloud 4.5.5
IE8
Хедеры из хрома и ие:
Хром:
Request URL:http://cloud.domain.lcl/?app=files&getfile=ajax/download.php&files=%D0%9F%D0%BE%D0%BB%D0%B8%D1%81.pdf&dir=%2F
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie:50e6c9fe6f47a=p5ndmvhd6i3vjfrpsm3p4lnmr5
Host:cloud.domain.lcl
Proxy-Connection:keep-alive
Referer:http://cloud.domain,.lcl/
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
Query String Parametersview URL encoded
app:files
getfile:ajax/download.php
files:Полис.pdf
dir:/
Response Headersview source
Cache-Control:must-revalidate, post-check=0, pre-check=0
Connection:close
Content-Disposition:attachment; filename="Полис.pdf"
Content-Transfer-Encoding:binary
Content-Type:application/pdf
Date:Tue, 15 Jan 2013 08:44:36 GMT
Expires:0
Pragma:public
Server:Apache/2.2.23 (FreeBSD) mod_ssl/2.2.23 OpenSSL/0.9.8m DAV/2 PHP/5.4.10 mod_perl/2.0.4 Perl/v5.8.8
Via:1.1 proxy.domain.lcl:3128 (squid/2.7.STABLE9)
X-Cache:MISS from proxy.domain.lcl
X-Cache-Lookup:MISS from proxy.domain.lcl:3128
X-Powered-By:PHP/5.4.10
А это добыто из ИЕ:
(Request-Line):GE http://cloud.domain.lcl/?app=files&getfile=ajax/download.php&files=%D0%9F%D0%BE%D0%BB%D0%B8%D1%81.pdf&dir=%2F TTP/1.1
Accept:image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-xpsdocument, application/msword, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/x-ms-application, application/x-ms-xbap, application/xaml+xml, */*
Accept-Language:ru
User-Agent:Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; MRA 8.0 (build 5880); .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E)
Accept-Encoding:gzip, deflate
Proxy-Connection:Keep-Alive
Host:cloud.domain.lcl
Cookie:50e6c9fe6f47a=7ejvjmfb4rno3a3ees2hu1i2a4
(Status-Line):HTTP/1.0 200 OK
Date:Tue, 15 Jan 2013 08:29:13 GMT
Server:Apache/2.2.23 (FreeBSD) mod_ssl/2.2.23 OpenSSL/0.9.8m DAV/2 PHP/5.4.10 mod_perl/2.0.4 Perl/v5.8.8
X-Powered-By:PHP/5.4.10
Expires:0
Cache-Control:must-revalidate, post-check=0, pre-check=0
Pragma:public
Content-Disposition:attachment; filename="ПолиÑ.pdf"
Content-Transfer-Encoding:binary
Content-Type:application/pdf
X-Cache:MISS from proxy.domain.lcl
X-Cache-Lookup:MISS from proxy.domain.lcl:3128
Via:1.1 proxy.domain.lcl:3128 (squid/2.7.STABLE9)
Connection:close