1 回答

TA貢獻1818條經驗 獲得超8個贊
解決方案:您需要設置LC_CTYPE
為UTF-8
以下更多方框圖字符的示例表明在字符串中進行了一些字符轉換datefmt
(類似于 Windows 命令tree
與 之間tree /A
的區別)。
# -*- coding: utf-8 -*-
import time, locale
t = time.localtime()
datefmt = '%Y/%m/%d ─│┌┐└┘├┤┬┴┼═║╔╗╚╝╠╣╦╩╬ %H:%M:%S'
print( '\n datefmt:', datefmt)
print( '\nLC_CTYPE:', locale.getlocale(category=locale.LC_CTYPE) )
print( 'strftime:', time.strftime(datefmt, t) )
locale.setlocale(locale.LC_CTYPE, (locale.getlocale()[0], '1252'))
print( '\nLC_CTYPE:', locale.getlocale(category=locale.LC_CTYPE) )
print( 'strftime:', time.strftime(datefmt, t) )
locale.setlocale(locale.LC_CTYPE, (locale.getlocale()[0], 'utf8'))
print( '\nLC_CTYPE:', locale.getlocale(category=locale.LC_CTYPE) )
print( 'strftime:', time.strftime(datefmt, t) )
輸出:.\SO\63472673.py
?datefmt: %Y/%m/%d ─│┌┐└┘├┤┬┴┼═║╔╗╚╝╠╣╦╩╬ %H:%M:%S
LC_CTYPE: ('Czech_Czechia', '1250')
strftime: 2020/08/20 |--?L-++T++=|-?L-||T|+ 19:29:14
LC_CTYPE: ('Czech_Czechia', '1252')
strftime: 2020/08/20 -|+++++|--+-|++++||--+ 19:29:14
LC_CTYPE: ('Czech_Czechia', 'utf8')
strftime: 2020/08/20 ─│┌┐└┘├┤┬┴┼═║╔╗╚╝╠╣╦╩╬ 19:29:14
不幸的是,我在 Python 源代碼中找不到那個字符翻譯(可以看到(我的本地)代碼頁有一個錯誤1250:字符─和│被翻譯為|和-,分別以相反的順序......
添加回答
舉報