Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Русскоязычное Linux-сообщество ([info]lj_ru_linux)
@ 2013-01-14 14:02:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
[Тупик] Опять кодировка

Ребят, подскажите как решить.
Писал в 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



(Читать комментарии) (Добавить комментарий)