解析Javascript/Node中字符串中的物理新行以进行存储

解析Javascript/Node中字符串中的物理新行以进行存储,javascript,json,node.js,encoding,utf-8,Javascript,Json,Node.js,Encoding,Utf 8,我使用UTF-8向服务器提交数据,并对发送到服务器的所有条目进行编码。我发送的对象是带有JSON数据的参数,这些数据部分由特殊字符组成 例如,对于JSON数据的description字段,textarea的实际输入为: !@$%^&*() “” 这是一条新路线 发送到服务器的UTF-8编码数据如下所示: &line={"description":"!%40%23%24%25%5E%26*()%0A%22%22''%0A%0Athis%20is%20a%20new%20line"}

我使用UTF-8向服务器提交数据,并对发送到服务器的所有条目进行编码。我发送的对象是带有JSON数据的参数,这些数据部分由特殊字符组成

例如,对于JSON数据的description字段,textarea的实际输入为: !@$%^&*()

“”

这是一条新路线


发送到服务器的UTF-8编码数据如下所示:

&line={"description":"!%40%23%24%25%5E%26*()%0A%22%22''%0A%0Athis%20is%20a%20new%20line"}
    {"description":"!@#$%^&*() 

      ""'' 

      this is a new line"}
参数为“line”

在服务器端,我试图解析line参数,但它已被解码回可读字符串,特殊字符和新行看起来与输入数据中的完全相同,尽管是JSON的一部分。当我尝试将此字符串解析为JSON时,它现在看起来像:

&line={"description":"!%40%23%24%25%5E%26*()%0A%22%22''%0A%0Athis%20is%20a%20new%20line"}
    {"description":"!@#$%^&*() 

      ""'' 

      this is a new line"}
我得到了'SyntaxError:Unexpected token'错误,假设它是由字符串中的中断引起的,这是应该的。我如何纠正这个问题?我曾尝试使用encodeURIComponent重新编码字符串,但这实际上编码了字符串的每个元素


我最终将把这些数据保存为NoSQL解决方案中文档的一部分;解析是作为验证过程的一部分来完成的,以确保输入数据是正确的JSON格式。

它对我有效:
console.log(decodeURIComponent(JSON.parse(“{”description:“!%40%23%24%25%5E%26*”(%0A%22%22\\'%0A%0Athis%20a%20a%20new%20line“)。description))
没有,在我检查数据进行验证时,它不再是带有特殊字符的格式。它是一个已经被解码的字符串,如上文第二段代码所示。它是如何“被解码的?”您是手动使用Express、
querystring.parse()
还是类似的方法来读取/解析数据的?是的,类似于此。它实际上是Koa,但正在进行初始解码的类似模块。