nl2br () работает на одной странице, но точно такой же код не работает на другой - PullRequest
0 голосов
/ 04 января 2012

Хорошо, поэтому я просто вызываю из mysql некоторый текст, а затем запускаю его через nl2br, чтобы сохранить разрывы строк и все их символы, а что нет.

код выглядит так на обеих страницах - <? echo nl2br($row[text]); ?>

теперь на одной странице сохраняются разрывы строк, цитаты, дефисы, все. а с другой стороны, она требует разрывов строк, но в ней есть символы, такие как гифоны или цитаты.

Например - Jenny and Jonny “Big Wave†video

Любая помощь будет отличной

1 Ответ

1 голос
/ 04 января 2012

Я думаю, что вы можете столкнуться с проблемой с сущностями HTML:

<? echo nl2br(htmlentities($row[text])); ?>

Это, вероятно, не решит проблему, поскольку у вас, вероятно, также есть проблема с кодировкой символов.Убедитесь, что в поле вашей базы данных хранятся данные в формате UTF-8, а затем добавьте следующую строку сразу после вашей строки mysql_select_db():

mysql_set_charset('utf8');

После этого вывод текста должен работать примерно так:

<? echo nl2br(htmlentities($row[text],ENT_COMPAT,'UTF-8')); ?>

Более легкое исправление может состоять в том, чтобы заменить «смешные» цитаты в БД на «нормальные» цитаты - «и» против »(вы получите то же самое с одинарными кавычками / апострофами и тире/ en dashes / etc скопировано из Word).

...