1

我制作了一个应该可以在 Android 和 iOS 上运行的 libGDX 游戏。游戏本身在两个平台上的工作方式相同,但出于某种原因,iOS 上的字符编码已关闭。

我正在创建一个这样的标签:

Label info = new Label("Scandinavian letters: 'æøåÆØÅ'", labelStyle);

这在 Android 上按预期工作;字体包含所需的字符,并且所有内容都按原样显示在屏幕上。

然而,在 iOS 上,斯堪的纳维亚字母会消失(改为显示“斯堪的纳维亚字母:''”)。

我怀疑这与文件编码有关,但我不知道我需要检查哪些文件,或者 Xamarin 中是否有为此设置。

我确实知道我的 Java 文件在通往 iOS 的过程中经历了很多转换(据我所知,Java => C# => Mono => Native),所以我怎样才能找出我需要在这个过程中的哪个位置更改编码,如何更改?

或者,我想这可以通过在我需要写'å'的每个地方使用“(char)229”来解决,其他字母依此类推,但这有点乱,不是吗?

4

1 回答 1

1

我认为这些字母会因为在将 Java 代码转换为 Mono 二进制文件的过程中出现编码问题而消失。

我目前的解决方案是一个非常丑陋的解决方案,但它确实有效。因此,以防其他人遇到同样的问题,这是我的临时解决方案:

public class Letters {

    public static char aa = (char)229;
    public static char ae = (char)230;
    public static char oe = (char)248;

    public static char AA = (char)197;
    public static char AE = (char)198;
    public static char OE = (char)216;

}

然后我可以写:

String text = "Gr" + Letters.oe + "t ombord i en fl" + Letters.aa + "te.";
于 2013-10-24T08:48:26.300 回答