Libgdx I18NBundle,无法显示斯堪的纳维亚字母

3
我已经为所有字符串创建了一个I18NBundle以支持不同的语言,但我的问题是当我在游戏中绘制字符串时,字母æ、ø和å不会显示,所以本应该是“Spil på tid”的东西会显示为“Spil p tid”,没有那个字母。
我不知道我做错了什么,但你会认为为支持不同语言而创建的东西应该能够显示特定于国家的字母和字符。
这是我的2个.properties文件:
infinite_mode=Play Infinite
timed_mode=Play Timed
options=Options
quit=Quit game
option_flip=Flip numpad
option_language=Change language
back=Back to main menu
wrong_number=You pressed the\nwrong number
time_ran_out=Time ran out
reach_50="You have reached 50
score=Score: {0}
time=Time: {0}
numbers_left=Numbers left: {0}
start_over=Start over
leaderboard=Leaderboard
plus_seconds=+{0} seconds!
option_sound=Sound

还有丹麦人的:

infinite_mode=Spil Evigt
timed_mode=Spil på tid
options=Instillinger
quit=Afslut spil
option_flip=Vend numpad
option_language=Skift sprog
back=Tilbage til hovedmenuen
wrong_number=Du trykkede på\ndet forkerte tal
time_ran_out=Tiden løb ud
reach_50="Du har nået 50
score=Point\: {0}
time=Tid: {0}
numbers_left=Tal tilbage: {0}
start_over=Start forfra
leaderboard=Resultattavle
plus_seconds=+{0} sekunder!
option_sound=Lyd

这里是我创建捆绑包的地方:

FileHandle baseFileHandle = Gdx.files.internal("Language/Lang");
        Locale Dansk = new Locale("da", "DK"); //The danish pack
        Locale English = new Locale("en", "GB"); //The English pack

        Lang = I18NBundle.createBundle(baseFileHandle, Dansk);

这可能是一个文件编码问题或字体问题。您能否使用调试器验证保存丹麦语字符串的字符串变量包含的实际值?此外,您使用哪个编辑器来编辑属性文件? - Thorbjørn Ravn Andersen
我正在使用IntelliJ编辑文件,字体是Roboto,如果我使用普通字符串,它可以显示字母,但不能通过bundle显示。我相对较新于编程,并不太熟悉调试。 - Jolly
当我正在调试应用程序(不知道我是否做得正确),如果我在变量下挖掘到å,它会显示为�。 - Jolly
听起来像是编码问题。如果使用\u00d8而不是ø可以正常工作,这就证实了这一点。然后你可以对所有的丹麦字符使用\u,或者确保你的编辑器使用与JVM相同的文件编码。 - Thorbjørn Ravn Andersen
2个回答

5

我实际上自己解决了这个问题,得到了 Thorbjørn Ravn Andersen 的很多帮助。问题出在 IntelliJ 上。在设置中,'.properties' 文件的文件编码不是 UTF-8,通过更改它,我解决了这个问题。


0

注意字符可能未被定位/创建在字体中


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接