(python utf-8) 使用 'à','ç','é','è','ê','ë','î','ô','ù'

(python utf-8) using 'à','ç','é','è','ê','ë','î','ô','ù'

我的口音有问题 python

我写了#-- coding: utf-8 -- 所以它可以识别重音。 但有时它仍然不起作用。我得到'?当我在收到错误“SyntaxError: Non-ASCII character '\xc3'”后使用它时

为什么?我应该改变什么?谢谢

(不适用于所有这些字符 'à'、'ç'、'é'、'è'、'ê'、'ë'、'î'、'ô'、'ù', "'","'")

这是我的代码:

# -*- coding: utf-8 -*-

testList = ['à','ç','é','è','ê','ë','î','ô','ù',"‘","’"]

testCharacter = raw_input('test a character : ') # example : é

print(testCharacter) # getting é
print(testCharacter[0]) # getting ? 
print(testCharacter + testCharacter[0]) # getting é?

testCharacterPosition = testList.index(testCharacter) 

print(testCharacterPosition) #getting 2

这是我控制台上的结果:

test a character : é
é
?
é?
2

您似乎仍在使用 python2(您应该考虑切换到 python3,因为 python2 已停产)。

如果粘贴一些 utf8 字符串,它是经过编码的,因此由多个字符组成,例如:

>>> s = 'à'
>>> s
'\xc3\xa0'
>>> s[0]
'\xc3'

当然这会打印一个问号,因为一个人不能构成完整的字符:

>>> print(s + s[0])
à�

您可以将其转换为 unicode 字符串,然后由一个字符组成:

>>> s.decode('utf-8')
u'\xe0'
>>> print(s.decode('utf-8'))
à

在 py2 中直接使用 unicode 字符串时可以绕过解码:

>>> s = u'à'
>>> s
u'\xe0'

更好的方法是使用 python3,它可以将整个事情简化为:

>>> s = 'à'
>>> s
'à'
>>>