ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 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
je0n
Постоянный
Регистрация: 14.05.2006
Сообщений: 334
Провел на форуме:
1543521

Репутация: 272
Отправить сообщение для je0n с помощью ICQ
По умолчанию

может я сейчас тупану... Но попробуй так
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
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме:
2976185

Репутация: 694


Отправить сообщение для blaga с помощью ICQ
По умолчанию

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

  #4  
Старый 05.04.2007, 01:02
Аватар для MstDoc
MstDoc
Познающий
Регистрация: 06.01.2007
Сообщений: 62
Провел на форуме:
830970

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

Пока ничего не помогло.

Прикол в том, что когда переменную $name выводится просто как текст на страницу, то все норм- русские буквы отображаются правильно. А когда сервер передает клиенту файл, где в качестве имени стоит эта же переменная, то тут уже проблемы с русскими буквами...

Перекодировка, конечно вариант, но все-таки хотелось бы нормальные русские имена...
 
Ответить с цитированием

  #5  
Старый 05.04.2007, 01:12
Аватар для bxN5
bxN5
Постоянный
Регистрация: 08.01.2006
Сообщений: 865
Провел на форуме:
3279330

Репутация: 343


Отправить сообщение для bxN5 с помощью ICQ
По умолчанию

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

  #6  
Старый 05.04.2007, 02:58
Аватар для MstDoc
MstDoc
Познающий
Регистрация: 06.01.2007
Сообщений: 62
Провел на форуме:
830970

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

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

  #7  
Старый 06.04.2007, 04:52
Аватар для MstDoc
MstDoc
Познающий
Регистрация: 06.01.2007
Сообщений: 62
Провел на форуме:
830970

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

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

  #8  
Старый 06.04.2007, 14:53
Аватар для _Nikolas_
_Nikolas_
Новичок
Регистрация: 27.12.2006
Сообщений: 18
Провел на форуме:
105228

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

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

  #9  
Старый 06.04.2007, 19:42
Аватар для MstDoc
MstDoc
Познающий
Регистрация: 06.01.2007
Сообщений: 62
Провел на форуме:
830970

Репутация: 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;

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

  #10  
Старый 06.04.2007, 20:53
Аватар для _Nikolas_
_Nikolas_
Новичок
Регистрация: 27.12.2006
Сообщений: 18
Провел на форуме:
105228

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

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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proxy FAQ foreva Чужие Статьи 12 04.01.2008 12:15
Урок анатомии .exe-вирусы $iD Авторские статьи 1 08.03.2007 10:15
Полезные .reg файлы AdvLamer Статьи 8 07.03.2007 23:44
НОВАЯ ВЕРСИЯ ЗАЩИТЫ ФАЙЛОВ ПРИ ПЕРЕДАЧЕ Zek Мировые новости 0 22.03.2006 14:38
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



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


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




ANTICHAT.XYZ