IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Не качается рускоязычная ссылка. (http://www.imho.ws/showthread.php?t=96675)

Naked 28.11.2005 18:52

Не качается рускоязычная ссылка.
 
Проблема такая, допустим есть ссылка http://lalala.ru/файл.doc, нажимаем на нее, а броузер пишет:
не найден файл /htdocs/ взае.doc
Как сделать так, чтобы ссылка на сервер приходила в нормальном виде, а не в виде закорючек... :help: ???

Stasik 28.11.2005 18:59

какой браузеръ?
http://www.lalala.ru/%f4%e0%e9%eb.doc

и брось такой изврат Ж)

boor 28.11.2005 18:59

Сервак не понимает кириллицу, переименуй файло.

Naked 28.11.2005 19:00

Stasik
броузер опера
boor
а как сделать, чтобы он понял кирилицу?

boor 28.11.2005 19:15

Цитата:

The_naked:
а как сделать, чтобы он понял кирилицу?
Хм если файл ты заливаешь то проста переименуй его латинскими буквами.
А по поводу как сделать то это уже к админам сервака.

Stasik 28.11.2005 19:24

попробуй IE/FF возможно это глюк браузера

%f4%e0%e9%eb.doc такая конструкция работает?

Naked 28.11.2005 19:30

Stasik
нет, тоже не работает, если поставить кодировку в utf8, то браузер правильно отображает имя файла, но все равно, говорит, что такого не найдено... Если латинские буквы, то все нормально... В осле тоже самое... :(

boor 28.11.2005 19:42

Stasik
Работать в принципе будет если Это Winserv а если unix то я сомневаюсь.
Хотя теоретически вроде можно сделать так что б unix понимал кириллицу.
Я могу и ошибаться

Stasik 28.11.2005 20:30

Тхе_накед
хттп://апаче.леха.ру/маил-арчиве/мсг04073.хтмл
мучай админа, а сообще, брось.... русские буквы не нужны... Ж)

aoxyz_30330 29.11.2005 05:05

русские ссылки нада перекодироwать w утф8 ... потому как нормальные браусеры передают так wсе что в адресной строке .... поекспериментируй с соотwетстwуюшими функциями ... тwоя ссылка яwно перекодируецца w юникод ... может быть изза кодироwки на странице кстати ... мда, wообше правильно, дело ето неблагодарное ... лутче при загрузке меняй имя фаила в латиницу ....

Naked 29.11.2005 22:26

а как можно броузеру не прямую ссылку дать, а ссылку на скрипт, который будет выдавать сам файл. Интересует именно скрипт...

Stasik 29.11.2005 22:39

www.domain.ru/download.php

а там
<?php
// We'll be outputting a PDF
header('Content-type: application/pdf');
// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// The PDF source is in original.pdf
readfile('original.pdf');
?>
(C) PHP.NET ;)

Naked 01.12.2005 19:16

Цитата:

Stasik:
header('Content-type: application/pdf');
а если мне нужно выдавать файл любого формата, то что нужно писать вместо application/pdf?

Al-x 01.12.2005 19:50

Используй mime_content_type

Naked 01.12.2005 20:15

Al-x
А можно как-нибудь сделать, чтобы она файл с русскими буквами не в utf8 приводила, а в win-1251, например...

Al-x 01.12.2005 23:53

Не очень понял в чём собственно на данный момент состоит проблема. Перекодировку строки из UTF-8 в win-1251 можно произвести (например) такой функцией:
PHP код:

function utf8win1251($s){
$out="";$c1="";$byte2=false;
for (
$c=0;$c<strlen($s);$c++){
$i=ord($s[$c]);
if (
$i<=127$out.=$s[$c];
if (
$byte2){
$new_c2=($c1&3)*64+($i&63);
$new_c1=($c1>>2)&5;
$new_i=$new_c1*256+$new_c2;
if (
$new_i==1025$out_i=168; else
if (
$new_i==1105$out_i=184; else $out_i=$new_i-848;
$out.=chr($out_i);
$byte2=false;}
if ((
$i>>5)==6) {$c1=$i;$byte2=true;}
}
return 
$out;



BorLase 02.12.2005 00:17

проблема, как я понимаю, в следующем:
- браузер шлет запрос на файл абв.doc
- шлет он его в юникоде как %f4%e0%e9.doc
- апач добросовестно пытается найти файл "%f4%e0%e9.doc" (но НЕ "абв.doc"!)
- не найдя его, честно рапортует - "файла нет, облом-с"

http://apache.lexa.ru/notes.html#russianfiles - тут кое-что накопал... но реально решение видится таким - запрос на файл получать скриптом, в скрипте декодировать ютф8 в вин1251 (или кои8, как там они лежат на винте) [как написал Al-x], и только потом скриптом же отдавать файл обратно.

а вообще - лучше указать это как фичу ;) "Не используйте русского в именах файлов!"


Часовой пояс GMT +4, время: 23:51.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.