Местами старнные символы в тексте после перекодировки базы в UTF-8

zerkms

TDD infected
Команда форума
*****
тогда получаем такую вот бабуйню в винде:
Код:
Книга В«AJAX
var_dump(html_entity_decode('Книга & laquo;AJAX', ENT_COMPAT, 'UTF-8')); // пробела после амперсанда тут нет, добавлен только для форума

да-да, перед лесенкой кириллическая "В"

Код:
zerkms@honeypot ~ $ php -r "var_dump(html_entity_decode('Книга & laquo;AJAX', ENT_COMPAT, 'UTF-8'));"
string(17) "Книга «AJAX"
 

Soul

Новичок
тоесть теги в базе это проблема?

тогда почему в кириллице такой проблемы не было
а как только UTF-8 ...... так на тебе

кстати с html_entity_decode($text,ENT_NOQUOTES,"UTF-8");
та же история
 

zerkms

TDD infected
Команда форума
тоесть теги в базе это проблема?
это не проблема, это в некоторых "вероисповеданиях" неправильно с теоретической точки зрения. вариант решения, насколько я вижу хоть какие-то варианты, я сказал выше.
 

zerkms

TDD infected
Команда форума
Soul
но согласись - ведь глупо дважды преобразование делать:
1. перед добавлением в базу
2. после выборки для редактирования
м?

почему бы не ложить в базу как есть, тогда при редактировании тоже будет передавать как есть, а вот для отображения клиентам уже форматировать необходимым образом (вот только не нужно в этом месте вспоминать о производительности, а то буду ругаться)
 

Soul

Новичок
та просто редактор сам кодирует " в & quot;
поэтому так и вышло
 

zerkms

TDD infected
Команда форума
Soul
странно тогда, что сам же редактор и обратное преобразование делать не умеет, для своего же текста.
 

Soul

Новичок
вот так как то ...
когда все работает не думаешь о том что в базу писать
а когда что то глобально поменять нуно так вот такая вот ерунда выходит

и спасибо за потраченное время.
что нибудь обязательно придумаю
 

Фанат

oncle terrible
Команда форума
я думаю, тут не редактор виноват, а двойное, все же, преобразование. Которое, к тому же, как мы помним, завязано (sic!) на волшебные кавычки.
 

Soul

Новичок
еще раз о том же))

вариант html_entity_decode($text, ENT_NOQUOTES, 'utf-8') очень даже подходит, все & quot нормально отображаются НО локально
на самом сервере выдает
Warning: cannot yet handle MBCS in html_entity_decode()!

это как то можно устранить ?

-~{}~ 29.05.09 17:42:

ну точней не устранить а сделать так чтоб html_entity_decode($text, ENT_NOQUOTES, 'utf-8') срабатывало..
 

Mols

Новичок
Версия ПХП какая?

http://bugs.php.net/bug.php?id=25670
http://bugs.php.net/bug.php?id=27626
 

Soul

Новичок
PHP Version 4.4.7 - на сервере

а у меня локально PHP Version 5.2.4 и все ок

http://bugs.php.net/bug.php?id=25670 пишут что с
Version: 4.3.2 должно работать я так понимаю...

или я неправильно понял?

-~{}~ 01.06.09 16:42:

на другом сервере - PHP Version 4.4.9 - работает

-~{}~ 01.06.09 16:42:

так с какой версии эта функция работает?
 
Сверху