Java 当组合三个字符时,Unicode字体不会在SWING中呈现ക;(\u0D15)和#x2B്;(\u0D4D)和#x2Bര;(\u0D30),获取和#xD30്ക;而不是ക്ര;
我正在用Java为Malayalam编写一个文本编辑器 Unicode字体在Swing-Java 当组合三个字符时,Unicode字体不会在SWING中呈现ക;(\u0D15)和#x2B്;(\u0D4D)和#x2Bര;(\u0D30),获取和#xD30്ക;而不是ക്ര;,java,swing,unicode,fonts,editor,Java,Swing,Unicode,Fonts,Editor,我正在用Java为Malayalam编写一个文本编辑器 Unicode字体在Swing-JTextArea中呈现不正确。 字符组合。与其混合两个字符,不如在文本区分别显示。swing和font都支持这些字符,但在组合键中,即使使用了支持的字体,它也不起作用。 例如: 需要什么 你得到了什么 代码 编辑:(作者评论中的补充信息): 当组合三个字符时ക (\u0D15)+് (\u0D4D)+ര (\u0D30),我正在ര്ക 而不是ക്ര. 语言为马来语,字体为Meera必须将JTextArea字
JTextArea
中呈现不正确。
字符组合。与其混合两个字符,不如在文本区分别显示。swing和font都支持这些字符,但在组合键中,即使使用了支持的字体,它也不起作用。
例如:
需要什么
你得到了什么
代码
编辑:(作者评论中的补充信息):
当组合三个字符时ക (\u0D15)+് (\u0D4D)+ര (\u0D30),我正在ര്ക 而不是ക്ര.
语言为马来语,字体为Meera必须将JTextArea字体设置为Unicode字体 除此之外,按钮69与问题无关,所以我不使用它 以下代码以您想要的方式显示文本:
String problemText = "ഔ";
Font font = new Font("Arial Unicode MS", Font.PLAIN, 18);
JTextArea jTextArea1 = new JTextArea();
jTextArea1.setFont(font);
jTextArea1.append(problemText);
我希望它能有所帮助。请查看零宽度连接件和零宽度非连接件。根据您的要求,我使用零宽度连接符获得了正确的输出,如:\u0d15+\u0d4d+\u200d+\u0d30。请查看零宽度连接符和零宽度非连接符。根据您的要求,我使用零宽度连接符获得了正确的输出,如:\u0d15+\u0d4d+\u200d+\u0d30(请忽略我以前的答案,它是相同的,但使用了错误的用户帐户发布)。对于任何人来说,都很难用您提供的有限信息来帮助您。示例代码片段、屏幕截图,以及更多关于您尝试做什么和看到什么的上下文,将使我们更容易帮助您。为了更快地获得更好的帮助,请发布一个。以防万一,您是否尝试过更改字体系列?请注意,一行代码不是SSCCE。您是否希望通过连接两个字符串来获得字符串转换?我担心这与挥杆无关,或者你正在追逐两个不同的目标。很好!如果有帮助,请随意投票并标记为已回答。我以为你的问题已经解决了。我还能做些什么来帮助您呢?您好@pablosaraiva,我正在使用JTextArea作为编辑器。当组合三个字符时ക + ് + ര, 我越来越ര്ക 而不是ക്ര. 使用的字体是Meera或任何Unicode字体。语言是马来语,在Ubuntu中运行良好,但在WindowsXP中不起作用。谢谢你你在使用Windows XP SP2吗?我在这里发现了一些东西:-从WindowsXPSP2开始,微软Windows集成了对MalayalamUnicode的支持ക, ്, ര 它变为ര ് ക 应该是什么时候ക്ര. 它在MicrosoftWord上运行良好,但在Java上失败。我用的是卡提卡字体。我还在努力帮助你。
്രക
jButton69.setFont(new java.awt.Font("Meera", 0, 12)); // NOI18N
jButton69.setText(" ്ര");
jTextArea1.append(jButton69.getText());
String problemText = "ഔ";
Font font = new Font("Arial Unicode MS", Font.PLAIN, 18);
JTextArea jTextArea1 = new JTextArea();
jTextArea1.setFont(font);
jTextArea1.append(problemText);