Encoding 我可以强制AWS CLI使用UTF编码吗?
我在Windows上使用AWS CLI从DynamoDb查询项目。其中一些项目包括非ASCII字符 当查询命中这些项时,它将因错误而终止 “charmap”编解码器无法对位置中的字符u'u010d'进行编码 经过几个小时的搜索,我终于发现了一个黑客的解决办法;在AWSCLI\encodings目录下,我将utf_8.pyc复制到cp1252.pyc上。这让我可以继续,但当然是丑陋的 在使用之前,我还尝试将环境变量(如LANG、LC_ALL、LC_CTYPE)设置为en-US.UTF-8或类似的各种排列形式,但都没有看到任何效果Encoding 我可以强制AWS CLI使用UTF编码吗?,encoding,utf-8,aws-cli,Encoding,Utf 8,Aws Cli,我在Windows上使用AWS CLI从DynamoDb查询项目。其中一些项目包括非ASCII字符 当查询命中这些项时,它将因错误而终止 “charmap”编解码器无法对位置中的字符u'u010d'进行编码 经过几个小时的搜索,我终于发现了一个黑客的解决办法;在AWSCLI\encodings目录下,我将utf_8.pyc复制到cp1252.pyc上。这让我可以继续,但当然是丑陋的 在使用之前,我还尝试将环境变量(如LANG、LC_ALL、LC_CTYPE)设置为en-US.UTF-8或类似的各
有人知道如何(甚至可能)告诉AWS CLI使用特定编码吗 由于您使用的是命令行界面,因此更改终端的编码方案应该可以解决此问题 类型:
在控制台中(对于UTF-8,您也可以尝试不同的编码)并重试您的操作。我已使用AWS CLI重新安装了AWS CLI,该CLI现在使用Python 3而不是Python 2,现在已不存在。可能也会有所帮助-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"
}
PS C:\Users\??\Documents>$aws=aws翻译文本--text“Request”--源语言代码“auto”--目标语言代码“PL”
“charmap”编解码器无法对位置4中的字符“\u015b”进行编码:字符映射到
PS C:\Users\??\Documents>退出
C:\Users\??\Documents>设置PYTHONIOENCODING=UTF-8
C:\Users\??\Documents>powershell
Windows PowerShell
版权所有(C)2016年微软公司。版权所有。
PS C:\Users\??\Documents>$aws=aws翻译文本--文本“请求”--源语言代码“自动”
--目标语言代码“PL”
PS C:\Users\??\Documents>$aws
{
“翻译文本”:“Prośba”,
“SourceLanguageCode”:“en”,
“TargetLanguageCode”:“pl”
}
我在windows 10上使用git bash,设置PYTHONIOENCODING=UTF-8
实际上并没有改变环境。使用exportpythonionecoding=UTF-8
然后克服了Windows 10的charmap
错误,cli由python安装
错误:
“charmap”编解码器无法对XX-XX位置的字符进行编码:字符映射到
解决方案:在命令行中运行以下命令
设置PythonionEncoding=UTF-8
为了实现这一点,在AWSCLI\encodings目录中,我必须将utf_8.pyc复制到cp65001.pyc(该目录不存在),但这比我以前做的更少脏。谢谢!:)祝福你@RookieRick,我花了几个小时试图让它运行起来,直到我终于看到了你的精彩评论。这个选项不适用于我从Powershell 6会话调用Windows 10上的aws dynamodb scan--table name foo--region us-east-2。然而,@Marek的解决方案(见下文)确实如此。在windows10上尝试了这个解决方案,并且成功了。如果您是从Powershell会话设置环境变量,则语法为
$env:PYTHONIOENCODING='UTF-16'
。
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"
}