gpt4 book ai didi

json - JSON.stringified() 对象中的文本编码问题

转载 作者:太空宇宙 更新时间:2023-11-03 22:42:43 24 4
gpt4 key购买 nike

我有一个index.html,其中的a 将文本发送到PHP 代码。该 PHP 通过 POST (curl) 再次将其发送到 Node.js 服务器,插入 JSON 消息(utf8 编码)

//Node.js server file (app.js) -- gets the json and shows it in a <script> to save it in client JS
render(index, {json:{string:"mystring"}})

//Template to render (index.ejs)
var data = <%=JSON.stringify(json)%>;

这样我就可以将 JSON 中的这些变量传递给数据。 JSON 比这里大得多,我只写了产生错误的部分:这里包含的字符串会产生“无效字符”JS 错误。我应该怎么办 ?我应该使用哪种编码/解码/转义?

我到处都有 utf-8,因为我的所有其他字符串都可以工作,即使是德语或阿拉伯字符。在这种特殊情况下,这是下面的“mystring”,它破坏了应用程序:

enter image description here

如果我删除红色圆圈中的字符,它就会起作用。

这是我收到的 JSON 中的字符串:

"Otto\nTheater-, Konzert- und Gpb\n\u2028\u2028Rhoasse\u00dfe 20\u2028\n51065 K\u00f6ln\n\nTelefon: 0000-000000-0\u2028\nTelefax: 0000-000000\n\nE-Mail: address@mail.com\u2028"

因为是用户输入的文本,所以我必须处理这种字符。我无权访问代码的 PHP 部分,只能访问 NodeJS 和客户端 JS。如何在 JS 中查找并删除/转换这些字符?

最佳答案

<%- JSON.stringify(data).replace(/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, "\\n") %>;

我最终用换行符替换了无效的 unicode 字符(对于 JSON 有效,但在 JS 代码中无效)。这样问题就解决了

关于json - JSON.stringified() 对象中的文本编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25075515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com