xAL
Гость
|
|
« : 02-11-2003 07:59 » |
|
Есть такая проблема - в форумах типа Invision Power Board, fastbb, phpbb, и им подобным люди из под виндов нормально пишут, а вот из *nix - происходит перекодировка вин->кои. Вот и я столкнулся с такой проблемой - мои сообщения почти нигде не отображаются нормально, а если мне сильно нужно, то я вручную свои сообщения конвертирую вин->кои Причем нашел форум (далеко не пошел - на akkords.ru ), где в некоторых подфорумах мои сообщения отображаются, а в других - нет. Посмотрел на пакеты отсылаемые от меня - в обоих случаях кодировка текста виндовая! Различия в формах отправки оказались только в задании у <form> параметра enctype='multipart/formdata'. Без его задания мои сообщения нормально не отображаются. Кто-нибудь знает с чем это связано? И как с этим бороться? И с какой стороны - со стороны клиента или сервера??
|
|
|
Записан
|
|
|
|
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии
Offline
Пол:
Бодрый птах
|
|
« Ответ #1 : 02-11-2003 12:01 » |
|
Да примерно знаю... Как видишь в этом форуме нет проблем с отображением кодировок. Я его жестко зашил на windows-1251 вставив в HEADER строчку charset в templates. Если этого не делать то по умолчанию берется та кодировка, которая стоит у юзера, на линухе это как раз koi-8. Я не смотрел есть ли у какого форума внутри встроенный декодер win->koi koi->win но мне он теперь не нужен. По form - нет вроде у этого phpBB параметра enctype='multipart/formdata' Ну каждый борется по своему, я фиксирую настройки - кто то определяет и перекодирует. ИМХО - если весь форум в win а пишет какой - то чудак на koi потому как лень ему лезть в браузере переставлять свою кодировку, то тут либо принудительно - как я либо парится... МОРОЗ тебе может подскажет как еще можно
|
|
|
Записан
|
А птичку нашу прошу не обижать!!!
|
|
|
Never
|
|
« Ответ #2 : 02-11-2003 12:08 » |
|
Присоединяюсь к вопросу- интересно послушать. Добавка: меня тут из одного места попросили прислать html-страницу в кодировке win-1252. Как это в коде станицы выглядеть должно?
|
|
|
Записан
|
не умеете летать- не мучайте метлу!
|
|
|
xAL
Гость
|
|
« Ответ #3 : 02-11-2003 14:11 » |
|
Да примерно знаю... Как видишь в этом форуме нет проблем с отображением кодировок. Я его жестко зашил на windows-1251 вставив в HEADER строчку charset в templates. <meta http-equiv="content-type" content="text/html; charset=windows-1251"> - это про это? Я как-то кому-то порекомендовал сделать так, но мне ответили, что мол "у тех, кто работает на Mac-ах с этим возникнут проблемы, поскольку там этого не предусмотрено"... причем это было на одном из линуксовых сайтах... я долго думал почему на Маках в броузерах нету поддержки meta-content-type-charset... так я до сих пор и не знаю точно, глупость ли это, сильное нежелание что-либо переделывать или сильное нежелание программистов на Маках делать поддержку этого тега (хотя и склоняюсь к первому варианту). Если этого не делать то по умолчанию берется та кодировка, которая стоит у юзера, на линухе это как раз koi-8. Кстати, кодировка в моем броузере по умолчанию виндовая. Я не думаю, что броузер в подобных ситуациях смотрит в какой кодировке система работает - ведь не зря есть настройки броузера. Я специально перед тем как писать сюда выставил везде, где только можно, виндовую кодировку. (у меня opera 7.20, но и мозиллу 1.4 тоже пробовал) ИМХО - если весь форум в win а пишет какой - то чудак на koi потому как лень ему лезть в браузере переставлять свою кодировку, то тут либо принудительно - как я либо парится... МОРОЗ тебе может подскажет как еще можно Как я отметил выше - я выставил таки кодировку в своем броузере. А по умолчанию там была вовсе не кои... Добавка: меня тут из одного места попросили прислать html-страницу в кодировке win-1252. Как это в коде станицы выглядеть должно? Хм. видимо как и текст страницы этого форума - сама кодировка виндовая + есть тэг <meta> с указанием виндовости....
|
|
|
Записан
|
|
|
|
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии
Offline
Пол:
Бодрый птах
|
|
« Ответ #4 : 02-11-2003 14:18 » |
|
Кстати, кодировка в моем броузере по умолчанию виндовая. Я не думаю, что броузер в подобных ситуациях смотрит в какой кодировке система работает - ведь не зря есть настройки броузера. Я специально перед тем как писать сюда выставил везде, где только можно, виндовую кодировку. (у меня opera 7.20, но и мозиллу 1.4 тоже пробовал)
У меня стоит локаль русская тоже, может к этому придем, что форум и код страниц не причем. И в Опере 7.20 и в IE у меня все нормально - Маки я естественно не проверял - но пользователи были и не жаловались вроде... Вопрос, а что этот форум у тебя тоже в неправильной кодировке??? Если да - то проблема у тебя а не в веб.
|
|
|
Записан
|
А птичку нашу прошу не обижать!!!
|
|
|
xAL
Гость
|
|
« Ответ #5 : 03-11-2003 04:17 » |
|
Вопрос, а что этот форум у тебя тоже в неправильной кодировке??? Если да - то проблема у тебя а не в веб.
Да нет, все нормально. Я даже уже на akkords.ru поставил в шаблон жесткое определение кодировки - и мои сообщения стали нормально отображаться... thx, хотя я к этому уже сам пришел, просто меня тот довод о Маках и еще один человек сбивали с толку. Но все-таки мне не понятно почему в броузере стоит виндовая кодировка по умолчанию, автоопределение правильно определяет виндовую кодировку, а текст отправляется в чем-то другом...
|
|
|
Записан
|
|
|
|
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии
Offline
Пол:
Бодрый птах
|
|
« Ответ #6 : 03-11-2003 06:37 » |
|
Без понятия... Это похоже очередной глюк майкрософта... А akkords.ru - твой сайт???
|
|
|
Записан
|
А птичку нашу прошу не обижать!!!
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #7 : 03-11-2003 09:08 » |
|
Присоединяюсь к вопросу- интересно послушать. Добавка: меня тут из одного места попросили прислать html-страницу в кодировке win-1252. Как это в коде станицы выглядеть должно? <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Моя страничка</title> </head> <body> Текст в ХТМЛ </body> </html>
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
RXL
|
|
« Ответ #8 : 03-11-2003 11:07 » |
|
Never, добавлю к сказаному МОРОЗ-ом: если html с виндовской кодировкой (cp1251,win-1251) открыть в виндовсе в простом текстовом редакторе типа notepad, то текст будет нормально читаться, а иначе бузед абракадабра.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Never
|
|
« Ответ #9 : 03-11-2003 14:42 » |
|
Ага. А есть такая штука (может функция?) которая определяет кодировку сайта и подставляет название нужной кодировки в тэг <meta>?
|
|
|
Записан
|
не умеете летать- не мучайте метлу!
|
|
|
RXL
|
|
« Ответ #10 : 03-11-2003 14:56 » |
|
Never, character set может устанавливаться в двух местах - в заголовке http и в странице тегом <meta http-equiv=...>. Если ставить и там и там, то браузер может не понять что включить и неправильно отобразить. Правильнее делать весь сайт в одной кодировке и указывать в одном месте, а данные пользователя, если они пришли в другой кодировке (если она указана), перекодировать в основную. Но это уже на совести разработчиков сайта.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Never
|
|
« Ответ #11 : 04-11-2003 08:38 » |
|
Но это уже на совести разработчиков сайта.
RXL, как ты меня порадовал!
|
|
|
Записан
|
не умеете летать- не мучайте метлу!
|
|
|
RXL
|
|
« Ответ #12 : 04-11-2003 09:24 » |
|
Never, ну если ты не относишься к этим разработчикам, то и совесть у тебя должна быть чистая и легкая
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #13 : 04-11-2003 11:36 » |
|
Ага. А есть такая штука (может функция?) которая определяет кодировку сайта и подставляет название нужной кодировки в тэг <meta>? Я таких функций не знаю. Можно привязать отображение сайта конкретно к кодировке юзера например так : $regional = $_SERVER['HTTP_ACCEPT_LANGUAGE'(; // получаем язык юзера switch )$regional: | case "lt"{ charset = "windows-1257"; // литовский break; case "ru"{ charset = "windows-1251"; // русский break; default{ charset = "windows-1252"; // английский если не литовский и не русский break; "
И далее в мета тэге прописать : <html> <head> <META http-equiv="Content-Type" content="text/html; charset=<?php print $charset; ?>"> <title>My Web Page</title> </head>
Но это наверно не то что нужно :oops:
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
Never
|
|
« Ответ #14 : 04-11-2003 15:03 » |
|
Но это наверно не то что нужно
Содрала. Может и это пригодится. Спасибо.
|
|
|
Записан
|
не умеете летать- не мучайте метлу!
|
|
|
RXL
|
|
« Ответ #15 : 04-11-2003 19:11 » |
|
MOPO3, ответ далеко не полный. Выдать http-equiv - это пустяки, а вот выдать документ в нужной кодировке... Если дока в cp1251, то зачем говорить что charset=windows-1257 ? Кроме того, Accept-Language может содержать не одно значение, а перечисление. Например у меня mozilla выдает "ru,en;q=0.5". Тут нужно использовать шаблоны для поиска того же "ru" (напр.: preg_match('\bru\b',$regional)). Вернемся немного назад: Присоединяюсь к вопросу- интересно послушать. Добавка: меня тут из одного места попросили прислать html-страницу в кодировке win-1252. Как это в коде станицы выглядеть должно? Never, тут не опечатка? Точно win-1252, а не win-1251 ? А то мы тут изголяемся, а дело может быть в другом...
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии
Offline
Пол:
Бодрый птах
|
|
« Ответ #16 : 04-11-2003 21:23 » |
|
А как тогда понимать заявы некоторых хостеров, что сервер сам понимает и выдает нужную кодировку???
|
|
|
Записан
|
А птичку нашу прошу не обижать!!!
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #17 : 05-11-2003 06:19 » |
|
RXL, Я и не претендую на полный ответ, это просто небольшой примерчик и всё.
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
Fireworm
Гость
|
|
« Ответ #18 : 05-11-2003 06:39 » |
|
А как тогда понимать заявы некоторых хостеров, что сервер сам понимает и выдает нужную кодировку??? Так оно и сеть, только некоторые могут насильно указвать каку-либо одну кодировку.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #19 : 05-11-2003 10:58 » |
|
А как тогда понимать заявы некоторых хостеров, что сервер сам понимает и выдает нужную кодировку??? IMHO, это нужно понимать как разные кодировки в рамках одного языка. Но перекодировками все равно занимается скрипт - чтобы это делал http сервер, я такого не слышал. Предпочтительную кодировку браузер сообщает в поле Accept-Encoding и в скрипте это доступно. В php есть ф-ии работы с русскими кодировками (про другие языки не знаю). МОРОЗ, аналогично
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Never
|
|
« Ответ #20 : 05-11-2003 12:36 » |
|
RXL, да, ребята, там опечатка. Читать 1251.
|
|
|
Записан
|
не умеете летать- не мучайте метлу!
|
|
|
|