Не отображается кириллица в kivy в utf-8
Есть два файла, main.py и my.kv. Работаю в пайчарме. У обоих файлов стоит utf-8.
Код чистый, всё по минимуму:
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
class Container(GridLayout):
pass
class MyApp(App):
def build(self):
return Container()
if __name__ == '__main__':
MyApp().run()
Ну и my.kv:
<Container>:
BoxLayout:
Label:
text: 'текст'```
Windows 8.1
upd; конвертация .kv файла в windows1251 решила проблему, но теперь вопрос вот в чём. не отразится ли это на чём нибудь в будущем?
Ответы (1 шт):
Автор решения: type49
→ Ссылка
В общем, в большинстве случаев помогает смена кодировки с windows-1251 на utf-8, но может быть и наоборот, как в моём примере.
Так же для windows 10 может сработать приём из другого вопроса: Параметры Windows -> Время и язык -> Язык -> Административные языковые параметры -> Изменить язык системы. Здесь ставим галочку "Бета-версия: Использовать Юникод (UTF-8) для поддержки языка во всем мире" Перезагружаем компьютер.
Плюс ещё такой часто советуемый вариант:
with open('kv_file.kv', encoding='utf-8') as kv_file:
kv_file.read()
И вот ещё метод:
def load_all_kv_files(self, directory_kv_files):
for kv_file in os.listdir(directory_kv_files):
kv_file = os.path.join(directory_kv_files, kv_file)
if os.path.isfile(kv_file) and kv_file.endswith("kv"):
with open(kv_file, encoding="utf-8") as kv:
Builder.load_string(kv.read())