我可以强制AWS CLI使用UTF编码吗?

Ric*_*che 10 encoding utf-8 aws-cli

我在Windows上使用AWS CLI来查询DynamoDb中的项目.其中一些项目包括非ASCII字符.

当查询命中这些项时,它会因错误而死亡

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

经过几个小时的搜索,我终于偶然发现了一个糟糕的解决方法; 在AWSCLI\encodings目录下,我通过cp1252.pyc复制了utf_8.pyc.这让我继续,但当然是丑陋的.

在诉诸于此之前,我还尝试将LANG,LC_ALL,LC_CTYPE等环境变量设置为en-US.UTF-8或类似的各种排列,所有这些都没有我能看到的效果.

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

Igo*_*ski 5

由于您使用的是命令行界面,因此更改终端的编码方案应该可以解决此问题。

类型:

chcp 65001
Run Code Online (Sandbox Code Playgroud)

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

  • 为此,在AWSCLI \ encodings目录中,我必须将utf_8.pyc复制到cp65001.pyc(不存在),但是比以前做的要脏得多。谢谢!:) (6认同)

小智 5

也许它也能有所帮助 - 从 AWS 进行翻译并将结果存储到文件(或 powershell 变量)的问题:\n有错误:

\n\n
aws translate translate-text --text "Investigation" --source-language-code "auto" --target-language-code "PL" >> a.txt\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n\n

添加环境。变量解决问题

\n\n
set PYTHONIOENCODING=UTF-8\n\naws translate translate-text --text "Investigation" --source-language-code "auto" --target-language-code "PL" >> a.txt\n
Run Code Online (Sandbox Code Playgroud)\n\n

在powershell中也是如此:

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

  • 在 Windows 10 上尝试了此解决方案,并且有效。如果您从 Powershell 会话设置环境变量,则语法为 `$env:PYTHONIOENCODING='UTF-16'`。 (2认同)