如何在Python中获取ASCII西里尔字符代码?

如何在Python中获取ASCII西里尔字符代码?,python,unicode,ascii,cyrillic,ord,Python,Unicode,Ascii,Cyrillic,Ord,ord()返回unicode代码,我需要ascii码 >>> s = "Йог" #cyrillic >>> for char in s: ... print(ord(char)) ... 1049 #unicode 1086 #unicode 1075 #unicode 我需要ASCII码。如何得到它?(下文) 你不能;中没有西里尔字母。您所显示的图表是针对众多字符集之一的;具体来说,它似乎是(又称CP1251)。因此,为了在此编码中获得字符的码

ord()
返回unicode代码,我需要ascii码

>>> s = "Йог" #cyrillic
>>> for char in s:
...     print(ord(char))
... 
1049 #unicode
1086 #unicode
1075 #unicode
我需要ASCII码。如何得到它?(下文)


你不能;中没有西里尔字母。您所显示的图表是针对众多字符集之一的;具体来说,它似乎是(又称CP1251)。因此,为了在此编码中获得字符的码点,您需要首先将字符串编码为CP1251,然后获取结果字节的值:

# Assuming Python 3
s = "Йог".encode('cp1251')
for b in s:
    print(b)

据我所知,这不是ASCII,因为ASCII只包含罗马字母,。。。并且对于大于128的元素没有规范。是的,大于127(从128到255)的符号是西里尔字母。当我使用Python2.7时,一切都很好。相反,我尝试将ascii转换为unicode而不是。但是现在使用Python3.5和unicode,一切都很好,如果我需要ascii码,我会得到象形文字。我需要的正是ascii西里尔码(VisualStudio中的多字节字符集),这很简单。Python应该能够将Unicode转换为该代码页。是的,它是Windows-1251。我尝试了转换,但无法获得正确的代码。谢谢,我尝试了这种方式,出现了很多错误,现在我知道了原因。现在可以了!我还忙于为python制作一个ascii工具库,所以也许我会在其中添加俄语以及其他语言
glagolitsa = "А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ы,Ь,Э,Ю,Я"
Glagolitsa = glagolitsa.split(',')
Glagolitsa

for i in range(len(Glagolitsa)):
    char = Glagolitsa[i]
    print(ord(char))

glagolitsa = glagolitsa.lower().split(',')

for i in range(len(glagolitsa)):
    char = glagolitsa[i]
    print(ord(char))

for i in range(1040, 1104):
    print(chr(i))