Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
вопрос по кодировке при передаче файла |

04.04.2007, 05:24
|
|
Познающий
Регистрация: 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..
|
|
|

04.04.2007, 08:30
|
|
Постоянный
Регистрация: 14.05.2006
Сообщений: 334
Провел на форуме: 1543521
Репутация:
272
|
|
может я сейчас тупану... Но попробуй так
header("Content-Type: application/octet-stream; charset=UTF-8;");
ну и если не поможет попробуй поменять значения UTF-8 на другие кодировки.
ну а еще можешь попреобразовывать кодировку в переменной $name. Функция convert_cyr_string()
Последний раз редактировалось je0n; 04.04.2007 в 08:52..
|
|
|

04.04.2007, 08:38
|
|
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
Провел на форуме: 2976185
Репутация:
694
|
|
http://forums.webscript.ru/showthread.php?postid=148642
http://www.flasher.ru/forum/showthread.php?t=72253
Вот что выдал мне гугл. Я бы просто сделал перекодировку в английиские буквы.
|
|
|

05.04.2007, 01:02
|
|
Познающий
Регистрация: 06.01.2007
Сообщений: 62
Провел на форуме: 830970
Репутация:
51
|
|
Пока ничего не помогло.
Прикол в том, что когда переменную $name выводится просто как текст на страницу, то все норм- русские буквы отображаются правильно. А когда сервер передает клиенту файл, где в качестве имени стоит эта же переменная, то тут уже проблемы с русскими буквами...
Перекодировка, конечно вариант, но все-таки хотелось бы нормальные русские имена...
|
|
|

05.04.2007, 01:12
|
|
Постоянный
Регистрация: 08.01.2006
Сообщений: 865
Провел на форуме: 3279330
Репутация:
343
|
|
PHP код:
header("Content-Disposition: attachment; filename="'.$name.'");
Не?Зач строкой передавать?
з/ы минусы не ставить я не гуру
pp/s новый цвет режит глаза
|
|
|

05.04.2007, 02:58
|
|
Познающий
Регистрация: 06.01.2007
Сообщений: 62
Провел на форуме: 830970
Репутация:
51
|
|
Вот что примечательно:
если просто кинуть на сервак файл с русскими буквами в названии и дать на него прямую ссылку, то все отображается и скачивается норм....
|
|
|

06.04.2007, 04:52
|
|
Познающий
Регистрация: 06.01.2007
Сообщений: 62
Провел на форуме: 830970
Репутация:
51
|
|
Неужели никто не сталкивался? В инете ни одного решения нету...
|
|
|

06.04.2007, 14:53
|
|
Новичок
Регистрация: 27.12.2006
Сообщений: 18
Провел на форуме: 105228
Репутация:
19
|
|
просто может на серваке кодировка по умолчанию другая, перекодируй имя файла в нее и все должно работать.
|
|
|

06.04.2007, 19:42
|
|
Познающий
Регистрация: 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;
}
|
|
|

06.04.2007, 20:53
|
|
Новичок
Регистрация: 27.12.2006
Сообщений: 18
Провел на форуме: 105228
Репутация:
19
|
|
Нет, ну не так конечно. Какая у тебя кодировка в пхп файлах и какая на серваке по умолчанию?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|