Python+;kivy:如何在一个标签中显示多语言(Unicode)?

Python+;kivy:如何在一个标签中显示多语言(Unicode)?,python,unicode,character-encoding,kivy,Python,Unicode,Character Encoding,Kivy,使用以下代码,我希望将某些语言的字母显示为一个标签 这些语言是:英语、德语、日语、汉语、俄语、法语、西班牙语、阿拉伯语。 我尝试了一些Windows系统字体,但没有一种字体能够正确显示所有字母 我想知道是否有任何字体支持上述所有语言 或者我怎么能在kivy里做到?(将所有标签放在一个标签中。) 代码如下: # -*- coding: utf-8 -*- from kivy.app import App #kivy.require("1.8.0") from kivy.uix.label imp

使用以下代码,我希望将某些语言的字母显示为一个标签

这些语言是:英语、德语、日语、汉语、俄语、法语、西班牙语、阿拉伯语。

我尝试了一些Windows系统字体,但没有一种字体能够正确显示所有字母

我想知道是否有任何字体支持上述所有语言

或者我怎么能在kivy里做到?(将所有标签放在一个标签中。)

代码如下:

# -*- coding: utf-8 -*-

from kivy.app import App
#kivy.require("1.8.0")
from kivy.uix.label import Label
from kivy.uix.widget import Widget

from kivy.lang import Builder
import kivy.resources

#kivy.resources.resource_add_path(r'/home/kivy/android/android-sdk-linux/platforms/android-18/data/fonts')
kivy.resources.resource_add_path('C:\Windows\Fonts')

import os.path

Builder.load_string('''
<Label>:
    font_name: 'AdobeGothicStd-Bold.otf'

<Widgets>:
    Label:
        text: "ABC ÄäÜüß にほんご 中文 ру́сский язы́к ÉéÈèÊêËë Españolالعَرَبِيَّة‎ ‎français"
        size: root.width, 75
        pos: root.x, root.top - 150
        font_size: 50
        height: 75
''')

class Widgets(Widget):
    def build(self):
        return Widgets()

class MyApp(App):
    def build(self):
        return Widgets()

if __name__ == "__main__":
    MyApp().run()
#-*-编码:utf-8-*-
从kivy.app导入应用程序
#kivy.require(“1.8.0”)
从kivy.uix.label导入标签
从kivy.uix.widget导入widget
从kivy.lang导入生成器
导入kivy.resources
#资源添加路径(r'/home/kivy/android/androidsdk linux/platforms/android-18/data/font'))
kivy.resources.resource\u添加路径('C:\Windows\Fonts')
导入操作系统路径
Builder.load_字符串(“”)
:
字体名称:“adobegothistd Bold.otf”
:
标签:
正文:“ABCÄÜß”にほんご 中文 西班牙足球队‎ ‎“法兰西”
尺寸:根。宽度,75
位置:root.x,root.top-150
字体大小:50
身高:75
''')
类小部件(小部件):
def生成(自):
返回小部件()
类别MyApp(应用程序):
def生成(自):
返回小部件()
如果名称=“\uuuuu main\uuuuuuuu”:
MyApp().run()

谢谢

由于许多技术和社会原因,你找不到一种质量好的字体来覆盖你想要的所有地区

好的软件通过组合不同的字体(标签需要用目标语言环境注释,代码点不够,日文和中文代码点重叠,但不应以相同的方式呈现)来实现您的目标

许多python软件还没有准备好国际化,仍然认为选择特定的字体或字体文件就足够了。是的,但这只是在ascii世界中


要了解字体组合,请查阅fontconfig和harfbuzz ng

你的实际产出是多少?您是否可能看到UTF-8显示为MBC?@MarkRansom是的,我正在使用UTF-8。问题是,如果我能正确理解汉语,我就不能正确理解阿拉伯语。如果我的德语正确,那么日语就不正确了。我想让所有的字母都正确。我再问一次,你到底看到了什么?如果你希望得到答案,你需要将其编辑到问题中。@Rita这基本上是Kivy的一个局限,这里有更广泛的记录: