美文网首页
AWS 上传的 S3 文件重新载入的时候简体中文显示乱码

AWS 上传的 S3 文件重新载入的时候简体中文显示乱码

作者: HoneyMoose | 来源:发表于2022-01-06 03:02 被阅读0次

    在我们将文件上传到 S3 后再次重新从界面中下载的时候发现上传文件的简体中文为乱码。

    问题和解决

    这是因为在上传的文件的时候文件的 meta 数据设置为 text。

    如果是这样的话,上传的文件中的简体中文会显示为乱码。

    在源代码上传中,如果使用的是 String 进行上传的话,将会默认使用 text。

    尽管所有的文本中都使用了 UTF-8,但是因为这个 UTF-8 是没有 BOM 格式的,因此没有办法识别为 UTF-8 版本。

    因此我们在这里需要设置 metadata 元数据。

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

    考虑上面的代码。

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

    其他

    另外,如果你将 String 保存为文件,然后使用 S3 的客户端从文件中读取后上传的话是没有这个问题的。

    这个问题的存在就是将 String 保存在内存中的数据直接上传到 S3 上。

    https://www.ossez.com/t/aws-s3/13840

    相关文章

      网友评论

          本文标题:AWS 上传的 S3 文件重新载入的时候简体中文显示乱码

          本文链接:https://www.haomeiwen.com/subject/mzrlcrtx.html