上传到S3的文本文件编码奇怪吗?

Pao*_*olo 23 encoding amazon-s3

这是最奇怪的错误,我甚至不知道从哪里开始理解什么是错的.

S3一直运行良好,直到突然有一天(昨天)它奇怪地编码上传到奇怪字符的任何文本文件.每当文本文件具有Å,Ä,Ö或任何其他UTF-8可比较但没有英文字符时,文本文件就会混乱.我尝试使用各种客户端以及AWS的Web界面进行上传.上传顺利,然后我下载文件,它搞砸了.我已经尝试将它下载到我的Mac上,我尝试将它下载到带有Linux的Raspberry上.同样的错误.

Amazons S3服务器是否有任何编码?!

Ton*_*haz 14

我有同样的问题,我解决它通过添加charset=utf-8属性- >元数据文件

在此输入图像描述


Son*_*van 7

您可以在S3控制台中的文件上显式设置“ Content-Type:文本/纯文本; charset = utf-8”。

这将告诉S3用作文本。

  • 我们到底应该在哪里设置呢? (10认同)

Rap*_*des 5

对于那些使用 boto3 (python 3) 上传并且使用奇怪字符而不是重音符号的人(例如葡萄牙语和法语),Toni ChazSony Kadavan的回答给了我修复的提示。在调用 put_object 时将 ";charset=utf-8" 添加到 ContentType 参数足以正确显示重音。

content_type="text/plain;charset=utf-8"
bucket_obj.put_object(Key=key, Body=data, ContentType=content_type)
Run Code Online (Sandbox Code Playgroud)


ooz*_*mac -8

如果您的数据包含non-ASCII multibyte characters (such as Chinese or Cyrillic characters),则必须将数据加载到VARCHAR列中。这VARCHAR数据类型支持四字节 UTF-8 字符,但该CHAR数据类型仅接受单字节 ASCII 字符。

来源:http ://docs.aws.amazon.com/redshift/latest/dg/t_loading_unicode_data.html

  • 红移不是 s3 (7认同)