Jul*_*oro 2 json amazon-s3 node.js aws-sdk
我正在通过该方法将 JSON 字符串从 Nodejs 服务器上传到 S3 s3.upload。
var s3 = new AWS.S3();
s3.upload({
Bucket: myBucket,
Key: 'myPath/' + thing.id + '.json',
Body: JSON.stringify(thing),
ContentType: 'application/json'
})
Run Code Online (Sandbox Code Playgroud)
如果在上面的代码片段中,该thing对象具有包含表情符号的 String 属性,我将如何修改此操作以保留表情符号字符。
在我的节点服务器上,我可以看到表情符号已存储在数据库中并正确提供服务。只有在上传之后,角色才会失去完整性。我认为有一些字符编码技巧可以应用于 JSON.stringify 结果,但我还不知道细节。在此寻求帮助。
我在节点服务器上得到的 JSON:
我在 S3 看到的 JSON:
正如 zerkms 所说,来自 S3 的文件中的字节与节点服务器的文件相同。问题在于,从 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'
})
Run Code Online (Sandbox Code Playgroud)
ContentEncoding: 'utf-8'此外,如果设置没有产生预期的行为,那也是毫无价值的。
| 归档时间: |
|
| 查看次数: |
2053 次 |
| 最近记录: |