Javascript 在解码base64编码的json对象时,如何处理特殊字母(\n,\)?

Javascript 在解码base64编码的json对象时,如何处理特殊字母(\n,\)?,javascript,python,json,base64,Javascript,Python,Json,Base64,在JavaScript中,我使用下面的代码从Json对象生成Base64字符串 let inputJson = { ... } let objJsonStr = JSON.stringify(inputJson); let objJsonB64 = Buffer.from(objJsonStr).toString('base64'); 在服务器端,我使用以下代码对其进行解码 json.loads(base64.b64decode(objJsonB64)) 但我有一些有趣的问题。 我从inp

在JavaScript中,我使用下面的代码从Json对象生成Base64字符串

let inputJson  = { ... }
let objJsonStr = JSON.stringify(inputJson);
let objJsonB64 = Buffer.from(objJsonStr).toString('base64');
在服务器端,我使用以下代码对其进行解码

json.loads(base64.b64decode(objJsonB64))
但我有一些有趣的问题。 我从
input
字段中输入了inputJson,如果
input
字段包含特殊字母,则解码后的值与原始
input
字段的值不同

例如,我输入了
test\ntest
,但在后端得到了
test\\ntest
。 因为当我在前端生成base64字符串时,JSON.stringify()函数编码如下:

\b -> \\b 
\f -> \\f
\n -> \\n
\r -> \\r
\t -> \\t
\" -> \\"
\\ -> \\\\
所以,在后端解码时,结果和原来的不同。 但是当我使用带有静态值的inputJSON时,所有的东西都可以完美地工作。 当我使用
input
中的特殊字母制作原始json时,会出现问题。
谁见过类似的问题?

反斜杠在JSON中是一个转义字符,因此需要转义才能按字面意思发送。这一切都应该由JSON和base 64的编码器和解码器透明地处理,您不需要做任何事情?您看到的是字符串的表示形式,它也会转义反斜杠。双反斜杠实际上不在字符串中。输出与输入相同。这就是
.value
.textContent
的美妙之处
\n
否则将是一个新行。当然,如果我使用它来表示,
\n
可以与
\\n
相同。但我的问题是,
input
用于处理密码。所以,我需要它与原始表单值相同。反斜杠在JSON中是一个转义字符,所以需要对它进行转义才能按字面意思发送。这一切都应该由JSON和base 64的编码器和解码器透明地处理,您不需要做任何事情?您看到的是字符串的表示形式,它也会转义反斜杠。双反斜杠实际上不在字符串中。输出与输入相同。这就是
.value
.textContent
的美妙之处
\n
否则将是一个新行。当然,如果我使用它来表示,
\n
可以与
\\n
相同。但我的问题是,
input
用于处理密码。所以,我需要它和原始表单值相同。