可以强制AWS CLI (v1)使用UTF编码吗?



编辑:注意,这是一个较老的问题,从AWS CLI是v1的时候开始——正如评论中所指出的,v2可能有其他更好的解决方案

我在Windows上使用AWS CLI从DynamoDb查询项目。其中一些项目包含非ascii字符。

当查询遇到这些项时,它将以错误

结束。

'charmap'编解码器无法对位置为....的字符u'u010d'进行编码

经过几个小时的搜索,我终于偶然发现了一个hack的解决方案;在AWSCLIencodings目录下,我复制了utf_8。Pyc over cp1252.pyc。这允许我继续,但当然是丑陋的。

在此之前,我还尝试将LANG、LC_ALL、LC_CTYPE等环境变量设置为en-US的各种排列。UTF-8或类似的格式,我看不出任何效果。

有人知道如何(或者甚至可能)告诉AWS CLI使用特定的编码吗?

由于您使用的是命令行接口,更改终端的编码方案应该可以解决这个问题。

类型:

chcp 65001

在控制台中(对于UTF-8;您也可以尝试不同的编码)并重试操作。

也许它也可以帮助解决从AWS转换并将结果存储到文件(或powershell变量)的问题:错误:

aws translate translate-text --text "Investigation" --source-language-code "auto" --target-language-code "PL" >> a.txt

'charmap'编解码器无法对位置1中的字符'u015a'进行编码:字符映射到

添加env。变量修复问题

set PYTHONIOENCODING=UTF-8
aws translate translate-text --text "Investigation" --source-language-code "auto" --target-language-code "PL" >> a.txt

powershell也一样:

PS C:Users???Documents> $aws = aws translate translate-text --text "Request" --source-language-code "auto"--target-language-code "PL"
'charmap' codec can't encode character 'u015b' in position 4: character maps to <undefined>
    PS C:Users???Documents> exit
    C:Users???Documents>set PYTHONIOENCODING=UTF-8
    C:Users???Documents>powershell
    Windows PowerShell
    Copyright (C) 2016 Microsoft Corporation. All rights reserved.
    PS C:Users???Documents> $aws = aws translate translate-text --text "Request" --source-language-code "auto"
    --target-language-code "PL"
    PS C:Users???Documents> $aws
    {
        "TranslatedText": "Prośba",
        "SourceLanguageCode": "en",
        "TargetLanguageCode": "pl"
    }

我使用升级后的MSI安装程序重新安装了AWS CLI,现在使用Python 3而不是Python 2, 未知编码错误现在消失了。

我在windows 10上使用git bash,设置PYTHONIOENCODING=UTF-8实际上没有env改变。使用出口PYTHONIOENCODING=UTF-8,克服charmap错误

Windows 10和cli是由python安装的

错误:'charmap'编解码器无法编码位置XX-XX中的字符:字符映射到

解决方案:在命令行

中执行以下命令

设置PYTHONIOENCODING = utf - 8

相关内容

  • 没有找到相关文章