我有一个来自进程输出的字符串,该字符串似乎是unicode,并且我无法将其与“普通”字符串进行比较。
代码如下:
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
result = re.match(r'#title#(?P<title>.*)#artist#(?P<artist>.*)#track#(?P<track>.*)#islive#(?P<islive>.*)', out.decode("utf-8"))
if result:
print(result.group('islive'))
print('na')
print(result.group('islive').lower() == 'na')
输出:
u'NA'
na
False
python版本是Python 3.6.5。
我需要一些如何比较这两个字符串的帮助。
答案 0 :(得分:0)
如果不能与u'na'
进行比较(由于速度较快而应首选),则可以在比较之前对Unicode字符串进行utf-8编码。
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
result = re.match(r'#title#(?P<title>.*)#artist#(?P<artist>.*)#track#(?P<track>.*)#islive#(?P<islive>.*)', out.decode("utf-8"))
if result:
print(result.group('islive'))
print('na')
print(result.group('islive').lower().encode('utf8') == 'na')