Фреймворк Kivy поддерживает несколько платформ и позволяет запускать код, написанный с его помощью, без изменений. Однако, мультплатформенность всегда связана с определенными проблемами. Достаточно неприятным открытием для меня было то, что не получается просто так отображать кириллицу и на Android, и в Windows.
Android прекрасно понимает кодировку UTF-8 - если программу написать с ее использованием то кириллица будет отображаться корректно. Но в Windows кириллица превратится в набор иероглифов. Связано это с тем, что в Windows интепритатор Python по умолчанию открывает файлы в кодировке cp1251. Соответсвенно, по умолчанию kv-файлы с описанием интерфейса будут открываться как cp1251, что и приведет к некорректному оторбражению.
Устраняется проблема достаточно тривиально. Во-первых, добавлям в наш файл с программой строки:
# -*- coding: utf-8 -*-
from kivy.lang import Builder
from io import open
Этим мы сообщим интерпритатору что файл следует воспринимать как кодированый в UTF-8. После чего следует добавить в коде программы до создания основного класса следующий код (my.kv соответственно меняем на название нужного нам файла с описанием интерфейса)
with open("my.kv", encoding='utf8') as f:
drunk = Builder.load_string(f.read())
В самом kv-файле текстовые строки задаем как UTF-8 подобным образом:
<MainScreen>:
MainMenu:
Button:
text: u'Назад'
После данной манипуляции кириллица будет корректно отображаться и на Android, и на Windows.