Kivy: с open (filename, encoding = 'utf-8') не работает

моя версия python - 3.6

Если я напишу корейский в файле .kv

и набрал на Python

Builder.load_file("Bus_Information.kv")

..это не сработало.

и я нашел решение, подобное этому ниже

with open('Bus_Information.kv', encoding='utf-8') as f:
    Builder.load_string(f.read())

и ошибки больше нет. но на экране только битые буквы .. enter image description here нравится ..

Как я могу это исправить? Спасибо за чтение.

py файл

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.image import Image
from kivy.uix.label import Label
from kivy.animation import Animation
from kivy.clock import Clock
#from kivy.config import Config
#Config.set('graphics', 'resizable', 0)
from kivy.core.window import Window
Window.size = (486, 650) 

class Loading_Screen(Screen):
    def __init__(self, **kwargs):
        super(Loading_Screen, self).__init__(**kwargs)
        Clock.schedule_once(self.callNext, 2) 
    def callNext(self,dt):
        self.manager.current = 'Before_First_Screen'

class Load_BusInfo():
    pass

class Before_First_Screen(Screen):
    pass

class First_Screen(Screen):
    pass

class Test_Screen(Screen):
    pass

class DTN_TECHNOPARK(Screen): 
    pass

class DTN_BITZONE(Screen): 
    pass

class DTN_INUSTATION(Screen): 
    pass

class Bus_Information(Screen): ####<---Here is the problem.####
    with open('Bus_Information.kv', encoding='utf-8') as f:
        Builder.load_string(f.read())
    #Builder.load_file("Bus_Information.kv")

class ScreenManagement(ScreenManager):
    pass

presentation = Builder.load_file("main.kv")

class TubucApp(App):
    def build(self):
        return presentation

TubucApp().run()

Это файл .kv

<Bus_Information>:
    name: 'Bus_Information'
    canvas:
        Rectangle:
            pos: self.pos
            size: self.size 
            source: 'image/destination/a.png' #backgroundimage
    Label:
        text_size: cm(6), cm(4)
        #halign: 'right'                
        #valign: 'middle'           
        pos: [1, 1]
        id: my_custom_label
        text: '가나다라마바사' ##here is broken letters..##
        color: [255,255,255,1]

Я старался

  1. u'가나다라마바사'

  2. # -*- coding: utf-8 -*-

Это текст utf-8? Также: не все шрифты поддерживают все символы ... поэтому, даже если кодировка правильная, вам, возможно, придется выбрать шрифт, поддерживающий этот текст.

Giacomo Alzetta 10.08.2018 15:04

Я поменял шрифт, и он был исправлен. Спасибо за совет!

m0f1us 10.08.2018 15:13
1
2
779
0

Другие вопросы по теме