我在Windows上使用AWS CLI查询DynamoDb中的项目。其中一些项目包括非ASCII字符。
当查询命中这些项目时,它会因错误而死亡
'字符表'编解码器不能对字符u' u010d'进行编码。在位置....
经过几个小时的搜索,我终于偶然发现了一个糟糕的解决方法;在AWSCLI \ encodings目录下,我通过cp1252.pyc复制了utf_8.pyc。这让我可以继续,但当然很难看。
在诉诸于此之前,我还尝试将LANG,LC_ALL,LC_CTYPE等环境变量设置为en-US.UTF-8或类似的各种排列,这些都没有我能看到的效果。
是否有人知道如何(或甚至可能)告诉AWS CLI使用特定编码?
答案 0 :(得分:4)
我已经使用upgraded MSI installers重新安装了AWS CLI,该命令行现在使用Python 3而不是Python 2,并且unknown encoding error已经消失了。
答案 1 :(得分:3)
由于您使用的是命令行界面,因此更改终端的编码方案应解决此问题。
类型:
chcp 65001
在控制台中(对于UTF-8;您也可以尝试不同的编码)并重试您的操作。
答案 2 :(得分:2)
我在Windows 10上使用git bash,并且设置PYTHONIOENCODING=UTF-8
实际上并没有更改环境。使用过的导出PYTHONIOENCODING=UTF-8
然后克服了charmap
错误
答案 3 :(得分:1)
也许也有帮助-从AWS转换并将结果存储到文件(或powershell变量)的问题: 出现错误:
aws translate translate-text --text "Investigation" --source-language-code "auto" --target-language-code "PL" >> a.txt
“字符映射”编解码器无法对位置1处的字符“ \ u015a”进行编码:字符映射至
添加环境。变量解决了问题
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"
}
答案 4 :(得分:0)
用于Windows 10和cli的是由python安装的
错误: 'charmap'编解码器无法对位置XX-XX中的字符进行编码:字符映射到
解决方案:在命令行中运行以下命令
设置PYTHONIOENCODING = UTF-8