AWS上传的S3文件重新加载时,简体中文显示乱码。

 2024-03-10 02:06:19  阅读 0

当我们将文件上传到S3,然后再次从界面下载时,发现上传文件的简体中文是乱码。

问题与解决方案

这是因为上传文件时文件的元数据被设置为文本。

如果出现这种情况,上传文件中的简体中文就会显示为乱码。

editplus3怎么没有utf-8无bom格式_u盘没有格式_无格式unicode文本

源码上传时,如果使用文本上传,则默认使用文本。

u盘没有格式_无格式unicode文本_editplus3怎么没有utf-8无bom格式

虽然所有文本都使用UTF-8,但是由于这个UTF-8没有BOM格式,所以没有办法识别它是UTF-8版本。

所以我们需要在这里设置元数据。


        byte[] bytes = newsletterJSON.getBytes(StandardCharsets.UTF_8);
        ByteArrayInputStream contentsAsStream = new ByteArrayInputStream(bytes);
        ObjectMetadata md = new ObjectMetadata();
        md.setContentType(MediaType.JSON_UTF_8.toString());
        PutObjectResult putObjectResult = s3Client.putObject("com.ossez.real.estate", "kb/newsletter.json", contentsAsStream, md);

考虑上面的代码。

在上面的代码中,我们设置了对象中的内容类型。

其他

另外,如果将其保存为文件,然后使用S3客户端从文件中读取并上传,则不会出现此问题。

当内存中存储的数据直接上传到S3时,就会存在这个问题。

标签: s3 aws utf8

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码