这是最奇怪的错误,我甚至不知道从哪里开始理解错误。
S3一直运作良好,直到有一天(昨天)它突然编码上传到奇怪字符的任何文本文件。每当文本文件具有Å,Ä,Ö或任何其他UTF-8可比较但没有英文字符时,文本文件就会混乱。我尝试使用各种客户端以及AWS的Web界面进行上传。上传顺利,然后我下载文件,它搞砸了。我已经尝试将它下载到我的Mac上,我尝试将它下载到带有Linux的Raspberry上。同样的错误。
Amazons S3服务器是否有任何编码?!
答案 0 :(得分:8)
我遇到了同样的问题,我通过在属性中添加-moz-transform: rotate(270deg) translate(x, 0) scale(x)
-ms-transform: rotate(270deg) translate(x, 0) scale(x)
transform-origin: 0 0
来解决这个问题 - >文件
答案 1 :(得分:4)
您可以在S3控制台的文件中显式设置“Content-Type:text / plain; charset = utf-8”。
这将告诉S3作为文本。
答案 2 :(得分:1)
对于那些使用boto3(python 3)上传且具有奇怪字符而不是强调字符的用户(例如葡萄牙语和法语),Toni Chaz和Sony Kadavan'的答案给了我修复的提示。调用put_object时,在ContentType参数上添加“; charset = utf-8”足以正确显示。
content_type="text/plain;charset=utf-8"
bucket_obj.put_object(Key=key, Body=data, ContentType=content_type)
答案 3 :(得分:1)
在.html文件的<meta charset="utf-8" />
中添加<head>
可以解决我的问题。
答案 4 :(得分:0)
不确定原因,但索尼Kadavan的答案在我的案例中不起作用。
而不是:
Content-Type:text / plain;字符集= UTF-8
我用过:
Content-Type:text / html;字符集= UTF-8
这似乎有效。
答案 5 :(得分:0)
在我的问题中,我也从UFT8的文件系统读取文件时遇到问题,因此在添加
之前,我在s3中得到了错误的文件编码。InputStreamReader isr = new InputStreamReader(fileInputStream, "UTF8");
代替
InputStreamReader isr = new InputStreamReader(fileInputStream);
也请注意这个可能的问题
答案 6 :(得分:-3)
如果您的数据包含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