Php nl2br无法处理数据库中的文本

Php nl2br无法处理数据库中的文本,php,Php,我试试这个: echo nl2br($row['content']); 但我得到的是: 大家好\n祝你们好运 为什么它不转换\n?数据库将数据存储为UTF-8 此外,我用一个测试字符串检查了它,发现如果该字符串带有双引号,它也不起作用。。我的意思是: echo nl2br("Hello everybody\n Good luck"); 它应该可以工作,但是如果您希望可以尝试str_replace\n而不是nl2br。它应该可以工作,但是如果您希望可以尝试str_replace\n而不是nl2

我试试这个:

echo nl2br($row['content']);
但我得到的是:

大家好\n祝你们好运

为什么它不转换\n?数据库将数据存储为UTF-8

此外,我用一个测试字符串检查了它,发现如果该字符串带有双引号,它也不起作用。。我的意思是:

echo nl2br("Hello everybody\n Good luck");

它应该可以工作,但是如果您希望可以尝试str_replace\n而不是nl2br。

它应该可以工作,但是如果您希望可以尝试str_replace\n而不是nl2br。

问题是,文本在数据库中以附加斜杠存储。对nl2br之前的文本使用stripslashes函数


问题是,文本在数据库中存储时附加了一个斜杠。对nl2br之前的文本使用stripslashes函数



如果您在一个文件中回显原始输出会怎么样?请使用var_dump检查输入。我认为您可能在PHP中存在编码问题,这意味着PHP二进制文件无法识别ASCII和UTF-8字符。虽然它也可能是一些基本的东西,只是对某些东西如何工作的困惑。@Sammaye我检查了PHP文件,数据库字段。。这都是UTF-8。您会发现实际文本内容将有转义斜杠,这与nl2brWhat不正确工作。如果您在a中回显原始输出,请使用var_dump检查输入。我认为您可能在PHP中存在编码问题,这意味着PHP二进制文件无法识别ASCII和UTF-8字符。虽然它也可能是一些基本的东西,只是对某些东西如何工作的困惑。@Sammaye我检查了PHP文件,数据库字段。。这都是UTF-8。您会发现实际的文本内容将有转义斜杠,这在NL2BROL中无法正常工作。它不起作用!哈哈,我想它不认识工作!你有什么解释吗?:-谢谢。对不起,我的错。双引号中的所有内容都将由PHP转义。因此,您必须避开该斜杠,或者必须使用诸如“\n”之类的单引号。此答案无法解决此问题。nl2br实际上是str_replace\n,因此如果nl2br不起作用,this.LOL也不会起作用。它不起作用!哈哈,我想它不认识工作!你有什么解释吗?:-谢谢。对不起,我的错。双引号中的所有内容都将由PHP转义。因此,您必须避开该斜杠,或者必须使用诸如“\n”之类的单引号。此答案无法解决此问题。nl2br实际上是str_replace\n,因此如果nl2br不起作用,这也不会起作用。
$myText = "Hello\\nWorld"; //text from a database (with line breaks escaped)
stripslashes(nl2br($myText));
print $myText;
// Result: Hello<br>World