2017-02-15 1 views
0

ord()은 유니 코드 코드를 반환하며 나는 ascii가 필요합니다.파이썬에서 ASCII 키릴 문자 코드를 얻는 방법은 무엇입니까?

>>> s = "Йог" #cyrillic 
>>> for char in s: 
...  print(ord(char)) 
... 
1049 #unicode 
1086 #unicode 
1075 #unicode 

및 ASCII가 필요합니다. 그것을 얻는 방법? (아래)

enter image description here

+3

내가 아는 한 ** ASCII가 아닙니다. ** ASCII ASCII는 로마자로만 구성되며 ... 128보다 큰 요소에 대해서는 사양이 없습니다. –

+0

예, 127 이상 (128에서 255까지)의 기호는 키릴 문자입니다. 파이썬 2.7을 사용하면 모든 것이 잘 작동합니다. 반대로 나는 ASCII 코드를 유니 코드로 변환하려고 시도했다. 하지만 파이썬 3.5와 함께 유니 코드를 사용하면 모든 것이 잘 작동합니다. 아스키가 필요하면 상형 문자가 있습니다. 그리고 정확히 아스키 키릴 코드가 필요합니다 (Visual Studio의 멀티 바이트 문자 세트) –

+3

그건 간단히 [CP1251] (https://en.wikipedia.org/wiki/Windows-1251)입니다. 파이썬은 유니 코드를 그 코드 페이지로 변환 할 수 있어야합니다. – Joey

답변

3

수 없습니다. ASCII에는 키릴 문자가 없습니다. 표시 한 차트는 많은 문자 집합 중 하나에 대한 문자입니다 (예 : "extended ASCII"). 구체적으로는 Windows-1251 (a.k.a. CP1251) 인 것으로 보인다. 이 인코딩에서 문자의 코드 포인트를 얻으려면 먼저 문자열을 CP1251로 인코딩 한 다음 결과 바이트의 값을 가져와야합니다.

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

감사합니다.이 방법을 시도했는데 오류가 많았습니다. 이제 그 이유를 알 수 있습니다. 이제 작동합니다! –

관련 문제