我正在尝试在Mac OS X 10.6上正确呈现Devanagari连字(Unicode字符串)。
这些字符串是在JComponent
上绘制的,并使用RenderingHints
进行抗锯齿处理。 这些连字在Windows XP SP2和7以及Ubuntu中显示正确,但在Mac OS X中,这些连字被分解了(或者说,没有正确合并),变音符号被移动到了其位置之外等问题(请参考下面的截图,左侧为Win XP SP2上的正确呈现示例(使用RenderingHints
抗锯齿键ON
),右侧为Mac OS X 10.6.7的错误呈现示例(Antialising DEFAULT
=OFF
)。
我已经设置了字体,应该在任何系统上使用默认字体:
new Font(null,Font.PLAIN,20);
我认为所有这些可能与Mac上的默认字符编码是MacRoman(不是UTF-8子集),而其他系统(如Windows)使用UTF-8子集(如WinLatin-1)或cp1252等有关。
即使掌握了这些信息,我对如何处理这个问题还是一无所知。因此,如果有人能指点我正确的方向,我将非常感激。
我已经尝试了很多方法:
- 将字体设置为Devanagari MT并没有解决问题
TextAttribute
LIGATURES_ON
也没有解决问题
如果有其他开发者提供提示或代码片段(最好是来自具有印地语背景且在Mac上开发的人),我将非常感激。