我遇到以下代码导致编码错误的问题: 将包含字符串的日语传递给strftime时会发生此问题。
这是在cmd.exe上的python repl上引起的 这个问题是python的错误吗?
import datetime
d = datetime.datetime.now()
d.strftime("%y年")
错误讯息:
UnicodeEncodeError: 'locale' codec can't encode character '\u5e74' in position 2: Illegal byte sequence
Python 3.6.5
Windows10 1803
答案 0 :(得分:1)
在脚本中添加编码后,它可以正常工作。
<强>实施例强>
# -*- coding: utf-8 -*-
import datetime
d = datetime.datetime.now()
print( d.strftime("%y 年") )
<强>输出:强>
18 年
答案 1 :(得分:1)
在Python 3.6+中,使用f-string:
import datetime
d = datetime.datetime.now()
y = d.strftime("%y")
assert f'{y}年' == '18年'