簡體   English   中英

Python 打印 unicode 字符而不是 ASCII

[英]Python printing unicode characters instead of ASCII

我想打印一個 ASCII 文本,但是當我運行腳本時,它拋出一個錯誤:

$ python test.py Traceback (most recent call last): 
   File "C:\Users\wooxh\Desktop\Materialy\XRichPresence\test.py", 
       line 1, in <module> print(""" File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2032.0_x64__qbz5n2kfra8p0\lib\encodings\cp1250.py", 
           line 19, in encode return codecs.charmap_encode(input,self.errors,encoding_table)[0] UnicodeEncodeError: 
   'charmap' codec can't encode characters in position 2-4: character maps to <undefined>

這是代碼

print("""
██╗  ██╗██████╗ ██████╗  ██████╗
╚██╗██╔╝██╔══██╗██╔══██╗██╔════╝
 ╚███╔╝ ██████╔╝██████╔╝██║     
 ██╔██╗ ██╔══██╗██╔═══╝ ██║     
██╔╝ ██╗██║  ██║██║     ╚██████╗
╚═╝  ╚═╝╚═╝  ╚═╝╚═╝      ╚═════╝
""")

看起來 Python 將您的代碼頁標識為 1250,其中不包括您正在使用的字符。 如果chcp報告您實際上使用的是代碼頁 437(常見於cmd.exe ),您可以執行以下操作:

import sys

sys.stdout.buffer.write("""
██╗  ██╗██████╗ ██████╗  ██████╗
╚██╗██╔╝██╔══██╗██╔══██╗██╔════╝
 ╚███╔╝ ██████╔╝██████╔╝██║     
 ██╔██╗ ██╔══██╗██╔═══╝ ██║     
██╔╝ ██╗██║  ██║██║     ╚██████╗
╚═╝  ╚═╝╚═╝  ╚═╝╚═╝      ╚═════╝
""".encode('cp437'))

顯式編碼到正確的代碼頁並編寫它。 否則,我建議啟用 Python 的強制 UTF-8 運行時模式,這應該允許您的原始代碼(不調用encode )工作(可能刪除或替換終端無法表示的字符)。 您只需更改運行命令:

> python -X utf8 test.py

或者在您的環境中明確定義PYTHONUTF=1以在沒有命令行開關的情況下將其打開。

暫無
暫無

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

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