gpt4 book ai didi

json - 如何使用 node.js 在 S3 文件中保留表情符号字符

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

我正在通过s3.upload将JSON字符串从我的nodejs服务器上传到S3。方法。

var s3 = new AWS.S3();

s3.upload({
Bucket: myBucket,
Key: 'myPath/' + thing.id + '.json',
Body: JSON.stringify(thing),
ContentType: 'application/json'
})

如果在上面的代码片段中,thing 对象有一个包含表情符号的 String 属性,我将如何修改此操作以保留表情符号字符。

在我的 Node 服务器上,我可以看到表情符号已存储在数据库中并正确提供服务。只有在上传之后,角色才会失去完整性。我认为有一些字符编码技巧可以应用于 JSON.stringify 结果,但我还不知道细节。在此寻求帮助。

我在 Node 服务器上获取的 JSON:

enter image description here

我在 S3 看到的 JSON:

enter image description here

最佳答案

正如 zerkms 所说,来自 S3 的文件中的字节与 Node 服务器的文件相同。问题在于,从 S3 打开 JSON 文件时,S3 的 Web 客户端没有告诉浏览器使用 uft-8。因此,Chrome 以屏幕截图的显示方式显示字节。

这都是事实,也很好,但是,它无助于解决最初想要的结果,即从 S3 Web 客户端查看表情符号。

修复方法是将 charset=utf-8 添加到 s3.upload 选项,如下所示:

s3.upload({
Bucket: myBucket,
Key: 'myPath/' + thing.id + '.json',
Body: JSON.stringify(thing),
ContentType: 'application/json;charset=utf-8'
})

此外,设置 ContentEncoding: 'utf-8' 没有产生所需的行为是没有意义的。

关于json - 如何使用 node.js 在 S3 文件中保留表情符号字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949940/

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