nl2br()适用于一个页面,但完全相同的代码不适用于另一个页面

时间:2012-01-04 02:28:53

标签: php mysql utf-8 html-entities

好吧所以我只是从mysql中调用一些文本,然后我通过nl2br运行它以保留换行符及其所有符号以及不符合的内容。

代码在两个页面上都是这样的 - <? echo nl2br($row[text]); ?>

现在在一个页面上它预先设置换行符引号连字符,一切。而另一方面则预先设置了换行符,但其中有符号,如hyphons或引用。

例如 - Jenny and Jonny “Big Wave†video

任何帮助都会很棒

1 个答案:

答案 0 :(得分:1)

我认为您可能会遇到HTML实体的问题:

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

这可能无法解决问题,因为您可能还有字符编码问题。确保您的数据库字段以UTF-8格式存储数据,然后在mysql_select_db()行后立即添加以下行:

mysql_set_charset('utf8');

一旦完成,输出文本应该是这样的:

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

更简单的修复可能是确保数据库中的“有趣”引用被“正常”引用替换 - “和”与“(您将使用单引号/撇号和em破折号/短划线/等从Word复制过来。