I have a problem, maybe Haxe 4.0.5 related. In iOS I do not see german umlauts and the strings are cut off after a occurrence of them, whereas I see the whole loca in Browser.
I have been able to get german umlauts working by adding/changing this in 8,9,6/src/openfl/_internal/text/TextLayout.hx
var bd: haxe.io.BytesData = new haxe.io.BytesData();
for (i in 0...text.length) {
bd.push(text.charCodeAt(i));
bd.push(0);
bd.push(0);
bd.push(0);
}
var textDP: lime.utils.DataPointer = lime.utils.DataPointer.fromBytesData(bd);
...
--__hbBuffer.addUTF8...
++ __hbBuffer.addCodepoints(textDP, -1, 0, -1);
However this is only a work around working for german umlauts.
Yes, on my machine Strings(with Umlauts) are stored with ASCII/Latin1 when using native targets. I tried lots of stuff to get umlauts in an UTF8 string and to render it correctly with a TextField. Seems very tricky.
And some stuff is broken like Haxe.utf8.encode, decode, also other related functions. It took me 2-3 days to find this workaround.