簡體   English   中英

Python3中的“ UnicodeEncodeError:'ascii'編解碼器無法編碼字符”

[英]“UnicodeEncodeError: 'ascii' codec can't encode character” in Python3

我正在從API(使用Python 3.5)中獲取帶有請求的JSON,而當我嘗試通過response.text,json.loads(...)或response.json()打印(或使用)JSON時,我收到UnicodeEncodeError。

print(response.text)
UnicodeEncodeError: 'ascii' codec can't encode character '\xc5' in position 676: ordinal not in range(128)

JSON包含帶有國家名稱的字典數組,其中一些包含特殊字符,例如:(例如,二進制數組中只有一個字典)

b'[{\n "name" : "\xc3\x85land Islands"\n}]

我不知道為什么會有編碼問題,為什么在請求檢測到UTF-8編碼時(甚至通過手動將其設置為UTF-8都不會改變)為何使用“ ascii”。

Edit2:問題是Microsoft Visual Studio Code 1.4。 它無法打印字符。

如果您的代碼在VS中運行,則聽起來Python無法計算出內置控制台的編碼,因此默認為ASCII。 如果您嘗試打印任何非ASCII字詞,則Python會拋出錯誤,而不是打印不會顯示的文本。

您可以使用PYTHONIOENCODING環境變量來強制使用Python的編碼。 在腳本的運行配置中進行設置。

根據Visual Studio的控制台,您可能會逃脫:

PYTHONIOENCODING=utf-8

或者您可能必須使用典型的8位字符集,例如:

PYTHONIOENCODING=windows-1252

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM