我在Python中得到了这个字符串
string = "Ľubomír Mezovský"
我只需要获取它的第一个字符。但是当我尝试使用string[0]
时,它返回了�
。当我尝试使用string[:2]
时,它能正常工作。我的问题是为什么?
我需要对多个字符串运行此操作,当字符串不以变音符号开头时,它会返回两个字符的子字符串。
我还在使用# encoding=utf8
和Python 2.7。
我在Python中得到了这个字符串
string = "Ľubomír Mezovský"
我只需要获取它的第一个字符。但是当我尝试使用string[0]
时,它返回了�
。当我尝试使用string[:2]
时,它能正常工作。我的问题是为什么?
我需要对多个字符串运行此操作,当字符串不以变音符号开头时,它会返回两个字符的子字符串。
我还在使用# encoding=utf8
和Python 2.7。
如果你使用的是Python 2.x,那么你正在处理字节字符串。
使用str.decode
将字节字符串转换为Unicode字符串,获取第一个字符,然后使用str.encode
将其转换回二进制字符串(除非你需要使用字节字符串,否则此步骤可选)。
>>> string = "Ľubomír Mezovský"
>>> print(string.decode('utf-8')[0].encode('utf-8'))
Ľ
string = u"Ľubomír Mezovský"
print string[0].encode('utf-8')
输出:
Ľ
在Python2.7中测试过
utf-8
,实际上需要两个字符来表示您的第一个字母。 - cs95