我可以强制 AWS CLI 使用 UTF 编码吗?
Can I force AWS CLI to use UTF encoding?
我在 Windows 上使用 AWS CLI 从 DynamoDb 查询项目。其中一些项目包含非 ASCII 字符。
当查询命中这些项目时,它会因错误而终止
'charmap' codec can't encode character u'u010d' in position....
经过几个小时的搜索,我终于偶然发现了一个 hackish 解决方法;在 AWSCLI\encodings 目录下,我将 utf_8.pyc 复制到 cp1252.pyc 之上。这让我可以继续,但当然很难看。
在求助于此之前,我还尝试将 LANG、LC_ALL、LC_CTYPE 等环境变量设置为 en-US.UTF-8 或类似的各种排列,所有这些都没有我能看到的效果。
有谁知道如何(或者甚至可能)告诉 AWS CLI 使用特定编码?
由于您使用的是命令行界面,更改终端的编码方案应该可以解决问题。
类型:
chcp 65001
在控制台中(对于 UTF-8;您也可以尝试不同的编码)并重试您的操作。
我已经使用 upgraded MSI installers which now use Python 3 instead of Python 2 and the unknown encoding error 重新安装了 AWS CLI 现在不见了。
也许它也有帮助 - 从 AWS 转换并将结果存储到文件(或 powershell 变量)的问题:
错误:
aws translate translate-text --text "Investigation" --source-language-code "auto" --target-language-code "PL" >> a.txt
'charmap' 编解码器无法对位置 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"
}
我在 windows 10 上使用 git bash 并且设置 PYTHONIOENCODING=UTF-8
实际上并没有改变环境。使用 export PYTHONIOENCODING=UTF-8
然后克服 charmap
错误
for Windows 10 并且 cli 由 python
安装
错误:
'charmap' 编解码器无法对位置 XX-XX 中的字符进行编码:字符映射到
解决方法: 运行在命令行中执行以下命令
set PYTHONIOENCODING=UTF-8
我在 Windows 上使用 AWS CLI 从 DynamoDb 查询项目。其中一些项目包含非 ASCII 字符。
当查询命中这些项目时,它会因错误而终止
'charmap' codec can't encode character u'u010d' in position....
经过几个小时的搜索,我终于偶然发现了一个 hackish 解决方法;在 AWSCLI\encodings 目录下,我将 utf_8.pyc 复制到 cp1252.pyc 之上。这让我可以继续,但当然很难看。
在求助于此之前,我还尝试将 LANG、LC_ALL、LC_CTYPE 等环境变量设置为 en-US.UTF-8 或类似的各种排列,所有这些都没有我能看到的效果。
有谁知道如何(或者甚至可能)告诉 AWS CLI 使用特定编码?
由于您使用的是命令行界面,更改终端的编码方案应该可以解决问题。
类型:
chcp 65001
在控制台中(对于 UTF-8;您也可以尝试不同的编码)并重试您的操作。
我已经使用 upgraded MSI installers which now use Python 3 instead of Python 2 and the unknown encoding error 重新安装了 AWS CLI 现在不见了。
也许它也有帮助 - 从 AWS 转换并将结果存储到文件(或 powershell 变量)的问题: 错误:
aws translate translate-text --text "Investigation" --source-language-code "auto" --target-language-code "PL" >> a.txt
'charmap' 编解码器无法对位置 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"
}
我在 windows 10 上使用 git bash 并且设置 PYTHONIOENCODING=UTF-8
实际上并没有改变环境。使用 export PYTHONIOENCODING=UTF-8
然后克服 charmap
错误
for Windows 10 并且 cli 由 python
安装错误: 'charmap' 编解码器无法对位置 XX-XX 中的字符进行编码:字符映射到
解决方法: 运行在命令行中执行以下命令
set PYTHONIOENCODING=UTF-8