Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Кодировка
Форумы портала PHP.SU » Клиентская разработка » HTML, Дизайн & CSS » Кодировка

Страниц (1): [1]
 

1. krutovaniya - 06 Февраля, 2010 - 17:50:42 - перейти к сообщению
На странице не правильно отображается кодировка.
Необходима utf-8

Я ставлю её через <meta>, но браузер тупит. Когда ставлю вручную, то всё ОК

Как объяснить это странному IE8 браузеру?
(Добавление)
Вручную, значит через настройки браузера
2. Carzil - 06 Февраля, 2010 - 17:57:11 - перейти к сообщению
Попробуй через заголовок отправлять кодировку.
(Добавление)
IE8 часто не читает meta теги.
3. Hunter - 06 Февраля, 2010 - 18:11:52 - перейти к сообщению
krutovaniya
долой мастдаевские технологии)))

поищи инфу по кроссбраузерному решению установки кодировки, хотя IE вообще много чем имеет "похвастаться".. я вижу в нем лишь один положительный момент - он делает DOM оптимизированым, хотя это тоже создает проблемы для кроссбраузерности приложений
4. krutovaniya - 06 Февраля, 2010 - 18:19:15 - перейти к сообщению
Carzil пишет:
Попробуй через заголовок отправлять кодировку.

Я догадывался, что так ответят.
А как? Я по всякому пробовал. Например, так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. header('Content-type: text/html; charset=utf-8\r\n');


Или так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. header('Content-type: text/html; charset=utf-8');


Но ни как...


Ошибка:
Цитата:

Warning: Cannot modify header information - headers already sent by (output started at Путь к файлу index.php:6) in Путь к index.php on line 7
5. Hunter - 06 Февраля, 2010 - 18:21:19 - перейти к сообщению
krutovaniya пишет:
Ошибка:

Цитата:
Warning: Cannot modify header information - headers already sent by (output started at Путь к файлу index.php:6) in Путь к index.php on line 7


заголовки отправляются только один раз и в начале скрипта, так же не должно быть пробелов.
(Добавление)
как вариант: предупреждение о том что коректное отображение страницы гарантированно только в определенном браузере, я такое видел у кого то, но это конечно не самый лучший вариант.

порой микросовтовцев вообще трудно понять, есть стандарт, зачем от него отклоняться, наверно затем чтоб потом нам не скучно верстать было Подмигивание
6. krutovaniya - 06 Февраля, 2010 - 18:27:25 - перейти к сообщению
http://vkontakte[dot]ru/app1822436

Ошибки о кодировке пропали, но выводится туйня. Когда иду в контекстное меню кодировка >> UTF-8, то всё ОК.

В чём дело? Недовольство, огорчение
(Добавление)
Хм...

Я сейчас для теста, ещё накалякал. Теперь часть отображается правильно, а часть нет.
То, что мне подарил ВКонтакте API - не отображается, а то, что я написал в условии - отображается.

Так что не IE тупой, а ВКонтакте! (До меня не скоро дойдёт)
7. Hunter - 06 Февраля, 2010 - 18:51:54 - перейти к сообщению
krutovaniya пишет:
Так что не IE тупой, а ВКонтакте! (До меня не скоро дойдёт)

ИМХО тупой именно ие (не зря его ослом прозвали), попробуй так: посмотри какую кодировку по умолчанию ставит ие, затем сохрани исходник страницы в этой кодировке, остальные браузеры вроде ставят автоматически или по крайней мере нормально читают мета теги.

я не знаю почему твой ие так себя ведет, у меня наоборот с utf8 проблем в осле не возникало, хотя версия 7-я
8. krutovaniya - 06 Февраля, 2010 - 19:02:43 - перейти к сообщению
Hunter пишет:
затем сохрани исходник страницы в этой кодировке


Э. Не понял... Я контакту говорю "Дай инфы" - он даёт. Даёт эта тварь в UTF-8. Если есть способ переделать, то подскажи.

P.S. У меня не IE7, а IE8, хотя в новой должно быть лучше....
(Добавление)
СТОП! Я, кажется, ДОГАДАЛСЯ!

Подскажите кто-нибудь, как из фигни типа %20 сделать пробел и т.д.
9. movEAX - 06 Февраля, 2010 - 19:27:33 - перейти к сообщению
krutovaniya пишет:

Подскажите кто-нибудь, как из фигни типа %20 сделать пробел и т.д.

Ну, urldecode к примеру..
10. Phantik - 06 Февраля, 2010 - 20:29:27 - перейти к сообщению
Hunter пишет:
[
заголовки отправляются только один раз и в начале скрипта, так же не должно быть пробелов.


Вы не правы. Заголовки можно отправлять в любом месте скрипта, до вывода информации в браузер. И ноги тут растут из особенностей http протокола. Более того, при включенной буферизации вывода, заголовки можно отправлять и после начала вывода в браузер(правда лучше этого не делать).

Далее браузер не определяет автоматически кодировку, максимум он может ее угадать. Кодировку браузер получает из заголовка Content-type, который ему приходит с сервера. А послать его с сервера в PHP можно функцией
header('Content-type: text/html; charset=utf-8')

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

2krutovaniya
1) Сохраните свой скрипт в кодировке utf-8.
2) В скрипте отправьте заголовок header('Content-type: text/html; charset=utf-8')
Если у вас нету работы с базой, то наслаждайтесь результатом.

Если это не помогло значит ваш хостер либо сам перезаписывает заголовки с кодировкой, либо перекодирует страницу перед выдачей в браузер.
В этом случае надо в панели управления акаунта искать настройки кодировок и разбираться с ними либо общаться с техподдержкой хостера.
11. JustUserR - 07 Февраля, 2010 - 00:29:57 - перейти к сообщению
krutovaniya Можете попробовать проставить кодировку вручную с помощью JS указания свойства document.charset в нужное значение И на всякий случай добавьте AddDefaultCharset utf-8 в файле .htaccess в той же папке где лежит выдаваемая HTML-страницы
krutovaniya пишет:
Так что не IE тупой, а ВКонтакте!
ИМХО ясное дело Улыбка

 

Powered by ExBB FM 1.0 RC1