簡體   English   中英

將 python 3.7 默認編碼從 cp1252 更改為 cp65001 aka UTF-8

[英]Change python 3.7 default encoding from cp1252 to cp65001 aka UTF-8

我需要將 Python 的編碼從Windows-1252更改為 UTF-8。 我正在使用 Python 3.7.1、 Atom和 Atom 腳本包作為終端。

我已閱讀PEP 540 -- 添加新的 UTF-8 模式(對此的解決方案?我不知道如何實施或是否有用)我找不到聲音分辨率。

目前它無法處理 '\✅' 或其他。 檢查 Python 文件目錄時,我發現 ...Python\\Python37\\lib\\encodings\\cp1252.py

# When I run
import locale
import sys
print(sys.getdefaultencoding())
print(locale.getpreferredencoding())

# I get
utf-8
cp1252
[Finished in 0.385s]

# Error for print('\u2705')
Traceback (most recent call last):
File "C:\Users\en4ijjp\Desktop\junk.py", line 7, in <module>
print('\u2705').decode('utf-8')
File "C:\Users\en4ijjp\AppData\Local\Programs\Python\Python37\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2705' in
position 0: character maps to <undefined>
[Finished in 0.379s]

我希望我的終端在使用 print() 時處理這些字符並顯示它們。

將以下內容放在 Python 腳本的頂部時,此問題已解決。 我能夠無誤地打印所有字符。

import sys
import io

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8')

暫無
暫無

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

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