【问题标题】:How to use carriage return or line feed in the query string?如何在查询字符串中使用回车或换行?
【发布时间】:2011-02-21 12:28:45
【问题描述】:

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

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

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

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

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

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

网址类似于:

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

我希望 line1 和 line2 位于 textarea 中的两条不同的行上。

【问题讨论】:

  • 这是 Javascript 而不是 Java。两种不同的语言和环境。
  • Javascript 在什么代码上抛出 IllegalArgumentException?
  • 对字符串“\r”和“\n”进行编码在这里对你没有用处。
  • @Tomalak:你可以编辑你的 cmets。
  • @Andy:是的,谢谢,我知道。

标签: javascript escaping


【解决方案1】:

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

【讨论】:

  • %0A 和 %0B 有效。我错过了编码的两个字符。谢谢。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2013-02-23
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 2021-10-10
    • 2012-01-31
    • 2010-11-23
    • 2021-07-05
    • 2013-07-05
    相关资源
    最近更新 更多