Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当组合三个字符时,Unicode字体不会在SWING中呈现ക;(\u0D15)和#x2B്;(\u0D4D)和#x2Bര;(\u0D30),获取和#xD30്ക;而不是ക്ര;_Java_Swing_Unicode_Fonts_Editor - Fatal编程技术网

Java 当组合三个字符时,Unicode字体不会在SWING中呈现ക;(\u0D15)和#x2B്;(\u0D4D)和#x2Bര;(\u0D30),获取和#xD30്ക;而不是ക്ര;

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字

我正在用Java为Malayalam编写一个文本编辑器

Unicode字体在Swing-
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);