我正在为i3blocks编写一个python脚本,以在Spotify上显示当前的艺术家和歌曲,并使用subprocess.run()
和playerctl来获取歌曲数据。输出无法正确显示日语字符,而是显示诸如\xe9\xa3\x9b\xe3\x81\xb9
之类的文本。换行符也显示为\n
,而不是实际的换行符。
我尝试使用string.decode(“ utf-8”),并收到错误'str' object has no attribute 'decode'
,在解码之前尝试了string.encode("utf-8")
和string.encode("ascii")
,但是输出与没有string.decode()
的情况相同。
output = str(subprocess.run(["playerctl", "metadata"], capture_output = True))
lines = output.split("\\n")
artist = lines[5].split("artist")[1].strip()
title = lines[8].split("title")[1].strip()
print(artist, title)
正确的输出应该是tricot 飛べ
,但实际输出是tricot \xe9\xa3\x9b\xe3\x81\xb9
答案 0 :(得分:0)
这项工作
t = b"tricot \xe9\xa3\x9b\xe3\x81\xb9"
t.decode("utf-8")
因为您的字符串必须是-执行解码方法的二进制字符串