php, моя страница и utf-8 сигнатуры @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 8 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
LongMan Муж.
новый человек
0
Сообщения: 41
Зарегистрирован: 25.03.03
Заголовок сообщения: php, моя страница и utf-8 сигнатуры
Сообщение Добавлено: 3 Июль 2005, 15:54:56 
Здравствуйте!
Борюсь с этой проблемой уже третий вечер.
Я не имею доступа к администрированию сервера, на котором лежит мой сайт.
Мой сайт работает на apache+php+postgresql.
в postgresql все мои данные хранятся в кодировке utf-8.
когда я делаю echo данных из постгреса я получаю страницу, которая начинается с сигнатуры utf-8. причем не одну, а четыре.
FireFox это проглатывает, а вот Explorer спотыкается.
Файл сценария тоже в кодировке utf-8.
Не подскажете, как решается проблема с этими злосчастными сигнатурами?
http://home.tltsu.ru/~longman - вот тот самый сайт. сигнатуры образуют пустую стоку сверху.

Как выяснилось позже, IE спотыкается только о вторую третью и четвертую сигнатуры. Первую он обрабатывает.
Вот и вопрос - как от них избавиться?

_________________
There is no spoon


Последний раз редактировалось LongMan 3 Июль 2005, 19:01:26, всего редактировалось 1 раз.
Inviz Муж.
соучастник
0
Сообщения: 687
Зарегистрирован: 05.04.05
Сообщение Добавлено: 3 Июль 2005, 17:14:29 
не вижу честно говоря факта проблемы. что в ие, что в фф, что в опере нету никаких сигнатур :)

_________________
критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
LongMan Муж.
новый человек
0
Сообщения: 41
Зарегистрирован: 25.03.03
Сообщение Добавлено: 3 Июль 2005, 18:58:16 
а я и не говорил что в броузерах есть сигнатуры.
это такое негласное правило. в начало файла в uft-8 кодировке пишутся три байта которые всем говорят, что это - uft-8.
даже notepad это понимает.
факт проблемы таков - если сигнатуры появляются, значит это кому-нибудь нужно.
Мне интересно либо кому это нужно, либо просто как от этого избавиться.

The Problem exists.

_________________
There is no spoon
Inviz Муж.
соучастник
0
Сообщения: 687
Зарегистрирован: 05.04.05
Сообщение Добавлено: 3 Июль 2005, 19:07:57 
если я не ошибаюсь это из-за того, что кодировка не указана насильственно

_________________
критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
LongMan Муж.
новый человек
0
Сообщения: 41
Зарегистрирован: 25.03.03
Сообщение Добавлено: 3 Июль 2005, 19:39:47 
К сожалению, ошибаетесь.
Кстати, если кому не нравится слово сигнатура, то правильно это называется BOM (byte order marker).
Состоит она из таких символов : ef bb bf
Я подумал - может возможно поймать это с помощью регулярных выражений?
но preg_replace("'\ef\bb\bf'u","",$string) результатов не дал

_________________
There is no spoon
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 3 Июль 2005, 20:00:08 

LongMan писал(а):
preg_replace("'\ef\bb\bf'u","",$string) результатов не дал



Было бы странно, если бы это сработало. Все гораздо проще:

Код:
str_replace("\xEF\xBB\xBF", '', $string)
LongMan Муж.
новый человек
0
Сообщения: 41
Зарегистрирован: 25.03.03
Сообщение Добавлено: 3 Июль 2005, 20:26:03 
[quote="Crazy"]. Все гораздо проще:
[quote]
Ну я бы не сказал, что проще. Но и не работает.

_________________
There is no spoon
LongMan Муж.
новый человек
0
Сообщения: 41
Зарегистрирован: 25.03.03
Сообщение Добавлено: 3 Июль 2005, 20:39:50 
Это ошибочная ветвь рассуждений.
С переменной оказывается все в порядке. Никаких сигнатур она не содержит. Но после того, как я делаю ее echo то четыре сигнатуры добавляется.
str_replace("\xEF\xBB\xBF", '', $string) значит работает, но в моей переменной этих сигнатур нет. они добавляются при echo.

_________________
There is no spoon
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 8 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100