2017-11-10 12 views
1

파이썬 2.7 및 파이 게임 (아나콘다 사용)으로 앱을 개발하고 있습니다. 이 응용 프로그램에서 키릴 문자로 텍스트를 그리려고하고 있는데, 제대로 표시되지 않습니다. 나는 그것이 인코딩 문제가 될 수 있음을 알고 있어요, 그래서 스크립트의 상단에이 줄을 포함 :파이 게임으로 키릴 문자를 그릴 때 사각형이 생깁니다.

#!/usr/bin/env python2 
# -*- coding: utf-8 -*- 

을 ... 그리고 나는 통과 각 문자열의 앞에 'U'등이 있습니다. 이것은 도움이되었지만 부분적으로 만 - 이제는 잘못된 문자 대신 사각형을 얻습니다!

흥미로운 점은 콘솔이 모든 것을 잘 인쇄한다는 것입니다.

왜 이런 일이 발생하며 어떻게 해결할 수 있습니까?

+0

귀하의 질문에 몇 가지 예제 문자가 포함되어 있습니까?이 시도하고 싶지만 어떤 종류의 문자가이 문제를 일으키는 지 알 수 없습니다. – Nepho

+2

텍스트를 렌더링하는 데 사용하는 글꼴은 키릴 문자를 지원합니까? – a5kin

+0

몇 가지를 사용하고 있습니다. Times New Roman을 포함한 폰트들입니다. 적어도, TNR은 키릴 문자를 지원해야합니다 ... 예를 들어, 다음 단어를 사용해보십시오 : "разходка" –

답변

1

텍스트를 렌더링하는 데 사용하는 글꼴에 키릴 문자가 없기 때문에 이러한 현상이 발생할 수 있습니다. 키릴 문자가 100 % 인 글꼴을 찾은 후 다음과 같이 텍스트를 렌더링하십시오.

my_font = pygame.font.Font("path/to/cyrillic_font.ttf", 12) 
text_surface = my_font.render(u"Текст", True, (255, 255, 255)) 
0

그래, 실제로 글꼴 문제인 것으로 판명되었습니다. 필자는 키릴 문자를 지원하지 않는 글꼴을 테스트 용으로 사용하고 있다는 것을 깨닫지 못했습니다. 레코드 용으로 올바른 글꼴을 사용하더라도 전달중인 각 문자열 앞에 'u'를 포함해야합니다. 또한 두 개 이상의 문자열을 결합하는 경우 각각에 'u'가 필요하거나 ASCII 오류가 발생합니다 ("문자를 변환 할 수없는 smt")