Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
Гость_Guest_Andrei_*_*
|
7:11:2005, 08:52
|
|
Инопланетный гость |
У меня проблема с отображением кодировки (IE, Firefox).
Предыстория такова. Сначала у меня стояла Win98+Apach+php+mysql и под этим хозяйством крутились (точнее только разрабатывались) сайты. Теперь я поставил на другой раздел ASPLinux10, подмонтировал старую www-папку (из раздела Win98), скопировал сайт в раздел ASPLinux (/var/www/html) и запустил его. В заголовке стоит META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251", но броузеры устанавливают UNICODE и выводят каракули. Если установить кодировку вручную, страница отображается нормально, но при переходе на другую страницу история повторяется. Кто-нибудь знает как с этим бороться? |
|
Сообщение
#1
|
|
![]() |
|
|
10:11:2005, 18:40
|
|
Новенький Группа: Новенький Сообщений: 17 Регистрация: 6:08:2005 Пользователь №: 2 113 Репутация: 0
|
Бороться надо с глупыми броузерами, которые игнорируют Чарсет.
Или может быть у тебя документ реально в Юникоде сделан? Проверь настройки редактора, которым правил странички. |
|
Сообщение
#2
|
|
|
|
13:11:2005, 13:57
|
|
Новенький Группа: Новенький Сообщений: 18 Регистрация: 13:11:2005 Из: Belorus, Novopolotsk Пользователь №: 2 557 Репутация: 0
|
У меня была такая проблема. У меня был установлен RedHad9
Причиной являются не браузеры, а настройки операционной ситстемы. Привожу описание настройки Настройка RedHat 9 на русскую локаль KOI8-R В свое время, после выхода в свет RedHat версии 8.0, мною была написана статья "Переход с RedHat-7.x на RedHat-8.0", в которой описывалось как заменить локаль UTF-8 на KOI8-R в связи глючности и проблемности русской локали UTF-8, с выходом RedHat версии 9 казалось, что эту проблему решили и русская локаль UTF-8 заработала как надо, правда не везде гладко, но решаемо. Однако многие пользователи RH9 хотят старую хорошо отработанную временем локаль KOI8-R, оно и понятно, UTF-8 все еще имеет проблемы с консольными приложениями, да и с некоторым старым софтом, от которого не хочется отказываться. Видимо по этой причине меня стали забрасывать письмами с просьбой рассказать как сделать такой переход, у меня нашлось немного времени это сделать, поэтому выполняю просьбу тех, кто меня об этом просил. И так, первым делом надо установить локаль KOI8-R в /etc/sysconfig/i18n как это делалось обычно для RH7.x: LANG="ru_RU.KOI8-R" SUPPORTED="ru_RU.KOI8-R:ru_RU.koi8r:ru_RU:ru" SYSFONT="cyr-sun16" SYSFONTACM="koi8-u" Примечание: Для RH8.0 приходилось ставить пакет kbd(consoletools) из RH7x, для RH9 этого делать не надо!!! Далее, надо установить расскладку клавиатуры для данной локали, как обычно идем в /etc/sysconfig/keyboard и делаем примерно так: KEYBOARDTYPE="pc" KEYTABLE="ru-ms" Вот собственно и все, что касается локализации, однако некоторые приложения в RH9 сильно завязаны на юникод и требуют замены, так как обычными настройками заставить их работать с KOI8-R мне не удалось. Почти все русские man'ы в RH9 конвертнуты в UTF-8, и поэтому пришлось немного доработать nroff, что бы он на лету конвертил из UTF-8 в KOI8-R, так что имейте это ввиду, если будут проблеммы с манами в кодировке KOI8-R. Вот список пакетов подлежащих обязательной замене: groff-1.18.1-24.i386.rpm groff-perl-1.18.1-24.i386.rpm groff-gxditview-1.18.1-24.i386.rpm less-378-8.i386.rpm Midnight Commander желательно тоже сменить: mc-4.6.0-5.i386.rpm Дополнительные необходимые приложения для MC: Архиватор ARJ arj-3.10g-1.i386.rpm или русская версия arj-3.10g-ru.1.i386.rpm Консольный MP3 плеер MPG123 mpg123-0.59s.mc2-2.i386.rpm или под K7 mpg123-0.59s.mc2-2.athlon.rpm Все пакеты мы устанавливаем как rpm -U [имя пакета], кроме arj и mpg123, так как они ранее отсутствовали в системе и поэтому лучше установить их как rpm -i [имя пакета]. Про мою версию mpg123 и ее отличие от оригинальной можно прочитать на ]]>http://mcmcc.bat.ru]]>. После обновления и установки этих пакетов этап по "коинизации" консоли можно считать законченным и переходим к Х-ам. Х-ы практически не нуждаются в какой-либо доработки, если есть проблема с кодировкой в приложениях написанных на gtk12, то она решается правкой /etc/gtk/gtkrc.ru примерно так: style "gtk-default-ru" { fontset = "-adobe-helvetica-medium-r-normal--12-*-*-*-*-*-koi8-*,\ -*-arial-medium-r-normal--12-*-*-*-*-*-koi8-r,\ -*-helvetica-medium-r-normal--12-*-*-*-*-*-koi8-r,\ -*-arial-medium-r-normal--12-*-*-*-*-*-koi8-r,*-r-*" } class "GtkWidget" style "gtk-default-ru" Еще бы не плохо установить MS ttf фонты, я бы даже сказал обязательно: ttf_webms-1.0-2.i386.rpm Как и в RedHat 8.0 в 9-ой версии отсутсвует все, что связано с MP3, RedHat пошла на такой шаг после того как за распространение кодеков MP3 стали требовать денежные отчисления, поэтому все мультимедийные приложения содержащие связь с MP3 были модернизированы на уровне исходников и из них был удален весь код связаный с MP3. В принципе RedHat понять можно, им не охото в будушем иметь судебные разборки и проще подстраховаться заранее, но это положение касается распространителей, а не обычных пользователей и разработчиков, поэтому я подготовил некоторые пакеты дополнения, которые позволяют дополнить 9-ку возможностям работы с MP3. Если вы используете в своей работе десктоп KDE, то вам необходимо обновить пакет kdemultimedia: Для KDE-3.1 который идет в составе RH9: kdemultimedia-3.1-5.i386.rpm kdemultimedia-devel-3.1-5.i386.rpm Для KDE-3.1.2 сборку которой осуществляла группа разработчиков KDE специально для 9-ки: kdemultimedia-3.1.2-0.9x.2.i386.rpm kdemultimedia-devel-3.1.2-0.9x.2.i386.rpm Если для прослушивания музыки вы используете плеер XMMS, то для него я специально сделал отдельный MP3 плагин, описание этого плагина вы можете прочитать на ]]>http://mcmcc.bat.ru:]]> mpg123-xmms-1.2.7-21.p.i386.rpm Возможно вам захочется создавать MP3 файлы, то енкодер LAME вам в этом поможет: lame-3.94-1.i386.rpm или версия для K7 lame-3.94-1.athlon.rpm lame-devel-3.94-1.i386.rpm Вот собственно и все, что касается MP3 и RH9... Хочу поделиться собранной мною JAVA v1.4.1 специально для RH9, как собрать самим JAVA SDK вы можете прочесть в моей статье "Самостоятельная сборка JAVA 2 SE v.1.4.1 из исходников с sun.com". Так же хочу обратить ваше внимание на пакет cdrtools v.2.0, для работы с пишущими DVD/CD-RW, который входит в состав RH9, а именно на утилиту mkisofs, для создания ISO имиджей CD дисков, в которую я интегрировал свои патчи для полной руссификации и о которых можно прочитать на ]]>http://mcmcc.bat.ru:]]> cdda2wav-2.0-7.i386.rpm cdrecord-2.0-7.i386.rpm cdrecord-devel-2.0-7.i386.rpm mkisofs-2.0-7.i386.rpm В своей статье я указывал ссылки только на бинарные собранные rpm пакеты, но если кому интересны исходники пакетов в rpm, то вы можете взять их тут, кроме JAVA естественно Заканчивая свою статью всем этим выше описанным и не обратив внимание на проблему сборки rpm пакетов, было бы с моей стороны не этично |
|
Сообщение
#3
|
|
|
Гость_Jaga__*
|
22:04:2006, 11:55
|
|
Инопланетный гость |
ну вы, ребята, даете. Это не браузер, он-то все как раз нормально делает. Получает http-заголовок от сервера и отображает страницу в том, в чем его просили. Если страницы статические, то нужно менять настройки самого сервера. Для Апач, например в файле настроек httpd.conf меняем строчку AddDefaultCharset с того, что там написано на то, что вам нужно. Рядом находятся сами названия этих кодировок, например cp-1251(для рус-вин-кодировки).
Если страницы динамические (например, на PHP), то вопросы к PHP-модулям, или чем он там говорит на CGI. Как вариант, заменить объявление заголовка на вывод на печать строчки "Content-type: text/html; charset=cp-1251\n\n" ЗЫ А насчет UTF8 vs. KOI8-R - вопрос спорный, хотя и не имеет никакого отношения к сабжу (серверу по барабану, какого типа байты он отсылает) |
|
Сообщение
#4
|
|
|
|
22:04:2006, 19:13
|
|
Рабочий с лопатой Группа: Модеры Сообщений: 568 Регистрация: 18:09:2005 Из: Минск Пользователь №: 2 309 Репутация: 2
|
все верно
|
|
Сообщение
#5
|
|
|
|
12:05:2006, 08:49
|
|
Гуру Группа: Достойный программист Сообщений: 261 Регистрация: 11:05:2006 Из: Левое полушарие Пользователь №: 4 135 Репутация: 1
|
ASP Linux?
Первой строкой файла определить как <%@LANGUAGE="VBSCRIPT" CODEPAGE="1251" LCID="1049"%> Другими словами, указывать необходимо не только кодировку статической части HTML ("META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251" в заголовке), но и кодировку диманической части. В принципе это относиться к любому языку, не только к ASP Сообщение отредактировал ioni - 12:05:2006, 15:28 |
|
Сообщение
#6
|
|
|
|
12:05:2006, 19:29
|
|
Новенький Группа: Новенький Сообщений: 18 Регистрация: 13:11:2005 Из: Belorus, Novopolotsk Пользователь №: 2 557 Репутация: 0
|
ioni я с вами согласен, но этого недостаточно. Нужно еще настроить и ОС, на которой установлен Web-сервер.
|
|
Сообщение
#7
|
|
|
|
12:05:2006, 19:48
|
|
Рабочий с лопатой Группа: Модеры Сообщений: 568 Регистрация: 18:09:2005 Из: Минск Пользователь №: 2 309 Репутация: 2
|
сколько повторять : header("Content-type: text/html; charset=cp-1251");
В клинических случаях в .htaccess забить: AddDefaultCharset windows-1251 |
|
Сообщение
#8
|
|
|
|
13:05:2006, 12:02
|
|
Новенький Группа: Новенький Сообщений: 3 Регистрация: 12:05:2006 Пользователь №: 4 169 Репутация: 0
|
я прописал header("Content-Type: text/html; charset=windows-1251"); в ие 6.0 - 7.0 все нормально, но в ие 5.0 и 5.5 все равно не понимает
|
|
Сообщение
#9
|
|
|
|
14:05:2006, 12:10
|
|
Рабочий с лопатой Группа: Модеры Сообщений: 568 Регистрация: 18:09:2005 Из: Минск Пользователь №: 2 309 Репутация: 2
|
убей осла об стену, хотя что-то ты опять не то сделал. раньше работало и под 4-тым ослом
|
|
Сообщение
#10
|
|
|
|
15:05:2006, 07:53
|
|
Продвинутый Группа: Новенький Сообщений: 183 Регистрация: 27:02:2006 Пользователь №: 3 006 Репутация: 0
|
сделай wget адрес_кривой_страницы
и посмотри на заголовки которые выдает сервер может там что не так? |
|
Сообщение
#11
|
|
|
|
15:05:2006, 15:16
|
|
Гуру Группа: Достойный программист Сообщений: 261 Регистрация: 11:05:2006 Из: Левое полушарие Пользователь №: 4 135 Репутация: 1
|
Обязательно к прочтению!
Так вот, чтобы уж совсем полностью и безоговорочно получить нужную кодировку, нужно выполнить три (!) действия (я про ASP/IIS) 1/ Настроить сценарий кодировкой по умолчанию директивой 2/ Непосредственно указать кодировку при генерировании данных путем второй строкой в странице.3/ Обязательно указать мета-хедер в разделе <HEAD> самой страницы, т.е. внутри HTMLОснования для того, чтобы дублировать вывод у меня появились после того, как я начал логически работать с выводом файлов - обратив внимание на то, что часто запросы winHTTP идут в стандартной кодировке, а не в той, которая указана (что в результате давало сразу несколько кодировок на странице и неправильное отображение как следствие) Сообщение отредактировал ioni - 15:05:2006, 15:16 |
|
Сообщение
#12
|
|
|
|
25:05:2006, 19:12
|
|
Новенький Группа: Новенький Сообщений: 13 Регистрация: 25:05:2006 Из: США, Редмонд, WA Пользователь №: 4 416 Репутация: 0
|
У меня совсем недавно такое было. Виноват в моем случае был "Русский Апач", который думает, что он умнее тебя и корежит кодировку по своему усмотрению. Вот ссылочка, где мне обьясняли как это дело исправить: ]]>http://peterhost.ru/forum/viewtopic.php?t=728]]>
|
|
Сообщение
#13
|
|
![]() |
|
Текстовая версия | Сейчас: 9:01:2009 - 00:12 |