Перейти к контенту
  • 0

Кодировка при загрузке файла


Вопрос

Доброго времени суток вам. Есть такая проблема: IPB 304, кодировка везде UTF-8, все символы корректно отображаются, кроме... диалога загрузки в IE любой версии. Он отображает это имя в Win-1251, характерно коверкая честные UTF-8 символы. При этом та же Опера показывает нормальные буквы.

post-39114-1267454536_thumb.jpg

 

Есть идеи, как это лечить?

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
Есть идея посмотреть заголовки, которые отправляются при этом форумом...
Ссылка на комментарий
Поделиться на других сайтах

  • 0

HTTP Headers:

 

GET /forum/index.php?app=core&module=attach&section=attach&attach_id=4 HTTP/1.1

Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*

Referer: http://xxx.ru/forum/index.php?showtopic=12...1&st=0&

Accept-Language: ru-RU

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; MS-RTC LM 8; Tablet PC 2.0)

Accept-Encoding: gzip, deflate

Host: xxx.ru

Connection: Keep-Alive

Cookie: hide_sidebar=1; member_id=2; pass_hash=7a8fb00eea87b1476f9962000c7ce138; session_id=76c1dbb496ce340d9884d8b8e6a038b1

 

HTTP/1.1 200 OK

Via: 1.1 MHQISA003

Connection: Keep-Alive

Proxy-Connection: Keep-Alive

Content-Length: 64956

Date: Tue, 02 Mar 2010 06:34:44 GMT

Content-Type: x-music/x-midi

Server: Apache/2.0.63-lk.c (Unix) mod_ssl/2.0.63-lk.c OpenSSL/0.9.8g mod_dp20/0.99.2 PHP/5.2.12 mod_python/3.3.1 Python/2.5.1 mod_ruby/1.2.6 Ruby/1.8.6(2007-09-24)

X-Powered-By: PHP/5.2.12

Content-Disposition: inline; filename="РўСѓСЂРЅРёСЂ (Final).mid"

Keep-Alive: timeout=10, max=64

 

 

Ну да. Имя файла - кракозябрики.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Спасибо за идею, после продолжительных раскопок нашел решение.

Суть проблемы - IE при загрузке файлов читает заголовок Content-Disposition в Windows-1251, в отличие от всех остальных браузеров, использующих родную кодировку страницы. Ребята из этого треда навели на эту мысль, спасибо им.

 

Если вдруг кому понадобится, то вот решение для тех, кто пользует UTF-8:

 

в файле /admin/applications/core/sources/classes/attach/class_attach.php меняем строки

				/* Open and display the file.. */
			header( "Content-Type: {$attach_cache[ $attach['attach_ext'] ]['atype_mimetype']}" );
			header( "Content-Disposition: inline; filename=\"{$attach['attach_file']}\"" );
			header( 'Content-Length: ' . (string) ( filesize( $file ) ) );

 

на

 

				/* Open and display the file.. */
			if (isset($_SERVER['HTTP_USER_AGENT']) && 
			(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false))
				$attachfile=mb_convert_encoding($attach['attach_file'], "Windows-1251", "UTF-8");
			else
				$attachfile=$attach['attach_file'];
			header( "Content-Type: {$attach_cache[ $attach['attach_ext'] ]['atype_mimetype']}" );
			header( "Content-Disposition: inline; filename=\"{$attachfile}\"" );
			header( 'Content-Length: ' . (string) ( filesize( $file ) ) );

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Можно было бы попробовать Content-Encoding прописать в UTF-8.

Но и так хорошо, причину нашли.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.