现在我正在使用Xamarin Android上的SkiaSharp。
我想使用SKCanvas.DrawText绘制日文文本,但是日文字体出现了乱码。
我看到了这个相似的问题,所以我尝试将文本转换为UTF-8,但结果还是一样。
我像下面这样尝试了一些方法。
var s = "abcあいう123壱弐参";
var buf = System.Text.Encoding.UTF8.GetBytes(s);
var utf8s = Encoding.UTF8.GetString(buf);
skcanvas.DrawText(utf8s, 50, 50, paint);
另一个例子。
var s = "abcあいう123壱弐参";
var dest = Encoding.UTF8;
var src = Encoding.Default;
var buf = src.GetBytes(s);
var buf2 = Encoding.Convert(src,dest, buf);
var utf8s = dest.GetString(buf2);
skcanvas.DrawText(utf8s, 50, 50, paint);
两个结果是一样的。"abc"和"123"都能正常显示,但日文字符会出现乱码。
有什么想法吗?