HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

вопрос по кодировке при передаче файла
  #1  
Старый 04.04.2007, 05:24
MstDoc
Познающий
Регистрация: 06.01.2007
Сообщений: 62
С нами: 10181638

Репутация: 51
По умолчанию вопрос по кодировке при передаче файла

Для передачи файла с сервака я использовал вот такие заголовки:

PHP код:
header("Content-Type: " $mm_type);
header("Content-Length: " .(string)(filesize($url)) );
header('Content-Disposition: attachment; filename="'.$name.'"');
header("Content-Transfer-Encoding: binary"); 
Переменная $name берется из базы данных. Когда в ней есть только цифры и латинские буквы все работает норм. Когда есть русские буквы, файл скачивается, но при этом в качестве имени идет беспорядочный набор символов или только та часть имени, которая написана латинскими буквами.

При этом русский текст на страницу из базы передается нормально. Т.е. на странице отображается правильно.

Сайт расположен на 5gbfree.com. Когда проверяю у себя на компе в денвере, то все норм пашет.

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

Последний раз редактировалось blaga; 04.04.2007 в 08:21..
 
Ответить с цитированием

  #2  
Старый 04.04.2007, 08:30
je0n
Постоянный
Регистрация: 14.05.2006
Сообщений: 334
С нами: 10522103

Репутация: 272
По умолчанию

может я сейчас тупану... Но попробуй так
header("Content-Type: application/octet-stream; charset=UTF-8;");

ну и если не поможет попробуй поменять значения UTF-8 на другие кодировки.


ну а еще можешь попреобразовывать кодировку в переменной $name. Функция convert_cyr_string()

Последний раз редактировалось je0n; 04.04.2007 в 08:52..
 
Ответить с цитированием

  #3  
Старый 04.04.2007, 08:38
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
С нами: 10597286

Репутация: 694


По умолчанию

http://forums.webscript.ru/showthread.php?postid=148642
http://www.flasher.ru/forum/showthread.php?t=72253
Вот что выдал мне гугл. Я бы просто сделал перекодировку в английиские буквы.
 
Ответить с цитированием

  #4  
Старый 05.04.2007, 01:12
bxN5
Постоянный
Регистрация: 08.01.2006
Сообщений: 865
С нами: 10703786

Репутация: 343


По умолчанию

PHP код:
header("Content-Disposition: attachment; filename="'.$name.'"); 
Не?Зач строкой передавать?
з/ы минусы не ставить я не гуру
pp/s новый цвет режит глаза
 
Ответить с цитированием

  #5  
Старый 05.04.2007, 02:58
MstDoc
Познающий
Регистрация: 06.01.2007
Сообщений: 62
С нами: 10181638

Репутация: 51
По умолчанию

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

  #6  
Старый 06.04.2007, 04:52
MstDoc
Познающий
Регистрация: 06.01.2007
Сообщений: 62
С нами: 10181638

Репутация: 51
По умолчанию

Неужели никто не сталкивался? В инете ни одного решения нету...
 
Ответить с цитированием

  #7  
Старый 06.04.2007, 14:53
_Nikolas_
Новичок
Регистрация: 27.12.2006
Сообщений: 18
С нами: 10196240

Репутация: 19
По умолчанию

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

  #8  
Старый 06.04.2007, 19:42
MstDoc
Познающий
Регистрация: 06.01.2007
Сообщений: 62
С нами: 10181638

Репутация: 51
По умолчанию

пробовал вот так, все равно не помогло...

PHP код:
function toUnicodeEntities($text$from="w") {
         
$text convert_cyr_string($text$from"i");
         
$uni "";
for (
$i=0$len=strlen($text); $i<$len$i++) {
     
$char $text{$i};
     
$code ord($char);
     
$uni .= ($code>175)? "&#" . (1040+($code-176)) . ";" $char;
}
return 
$uni;

 
Ответить с цитированием

  #9  
Старый 06.04.2007, 20:53
_Nikolas_
Новичок
Регистрация: 27.12.2006
Сообщений: 18
С нами: 10196240

Репутация: 19
По умолчанию

Нет, ну не так конечно. Какая у тебя кодировка в пхп файлах и какая на серваке по умолчанию?
 
Ответить с цитированием

  #10  
Старый 06.04.2007, 21:57
MstDoc
Познающий
Регистрация: 06.01.2007
Сообщений: 62
С нами: 10181638

Репутация: 51
По умолчанию

на серваке по умолчанию стоит utf-8, на странице я выставил cp1251, в базе тоже 1251,
в header пробовал добавлять 1251 не помогло...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полезные .reg файлы AdvLamer Статьи 8 07.03.2007 23:44
НОВАЯ ВЕРСИЯ ЗАЩИТЫ ФАЙЛОВ ПРИ ПЕРЕДАЧЕ Zek Мировые новости. Обсуждения. 0 22.03.2006 14:38



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.