【发布时间】:2021-05-25 00:16:59
【问题描述】:
我正在尝试在 Python 2.7 中打印一个字符串,但该字符串包含字符“(150\xb5s)”,它无法打印 x5bs,因此该字符串的位置会出错。
UnicodeEncodeError: "ascii" codec can't encode character u'\xb5'
string_print = "29 days in (F150\xb5s)"
with open("testing_file.txt", "w") as fill:
fill.write(string_print)
我尝试从 stackoverflow 解决方案中执行此操作,但仍然遇到相同的错误
string_print = "29 days in (F150\xb5s)"
with open("testing_file.txt", "w") as fill:
fill.write(string_print.decode("utf-8"))
使用原始字符串方法可行,但问题是 string_print 可以包含任何字符串,因为我只是将一个很长的程序缩短以更好地隔离问题。那么有没有办法让变量 string_print 成为原始字符串的一部分。如果我只做“(F150\xb5s)中的29天”的原始字符串,它就可以工作。
r"29 days in (F150\xb5s)"
但是 string_print 可以有任何类型的字符串
【问题讨论】:
-
你有没有尝试过这里的任何东西:stackoverflow.com/questions/9942594/…
-
也可以考虑使用 Python 3。见https://www.python.org/doc/sunset-python-2/
-
当我在 Python 2.7 中运行该代码时,它可以正常工作,并给出结果
robot-1955Trying to print the character(150µs) -
@BoarGules 我已经改写了我试图将字符串写入实际导致问题的文件的问题。
标签: python python-2.7 ascii unicode-string