我制作了一款可以在Android和iOS上运行的libGDX游戏。游戏本身在两个平台上都是相同的,但由于某些原因,iOS上的角色编码是关闭的。
我正在创建一个像这样的标签:
Label info = new Label("Scandinavian letters: 'æøåÆØÅ'", labelStyle);
这适用于Android;字体包含所需的字符,所有内容都显示在屏幕上。
然而,在iOS上,斯堪的纳维亚字母消失了(显示“斯堪的纳维亚字母:''”而不是。
我怀疑这与文件编码有关,但我不知道我需要检查哪些文件,或者Xamarin中是否存在某个设置。
我知道我的Java文件在进入iOS的过程中经历了很多转换(据我所知,Java => C#=> Mono => Native),所以如何才能找到在这个过程中我需要改变编码,以及如何?
另类,我想这可以通过使用“(char)229”来解决我需要写的每个地方'å',等等其他字母,但那有点乱,不是吗?
答案 0 :(得分: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.";