如何在查询字符串中使用回车符或换行符?

时间:2011-02-21 12:28:45

标签: javascript escaping

客户可以在文本区域中输入行,并将其保存在数据库中。

如果客户回到网站,他可以加载以前输入的数据。

但是,换行和回车不会显示在文本区域中。

我可以将它们放在查询字符串中,例如通过ASCII编码它们:%A或%D但java不喜欢它并抛出IllegalArgumentException。

我现在这样做:%5Cn和%5Cr给出:\ n和\ r

如何让javascript将转义的新行显示为文本区域中的实际新行?

网址类似于:

http://www.abc.com?textarea=line1%5Cn%5Crline2

我希望line1和line2在textarea中的两个不同的行上。

3 个答案:

答案 0 :(得分:19)

%5C是一个字面反斜杠 - 所以%5Cn只是“反斜杠,然后是字母n”。你可能想要的是%0A%0D,而不是%A%D。但是你应该正确地对整个字符串进行URL编码,而不是手工编码两个字符。使用encodeURIComponent()。此外,使用POST而不是GET,但不是因为字符串是多行的,而是因为您将其存储在数据库中。您不应该将GET方法用于非幂等的操作。

答案 1 :(得分:3)

我找到了一个干净简单的online tool来做这个

enter image description here

答案 2 :(得分:2)

使用GET(查询字符串)输入多行数据是错误的。你应该考虑使用POST。