Java中的阿拉伯语错误

时间:2018-08-10 12:23:04

标签: java

我目前正在使用阿拉伯语言的Java项目上工作,如图所示,我发现用阿拉伯语编写时遇到了困难:

enter image description here

  1. 我写阿拉伯语时没有做任何编辑。
  2. 我添加了一个reverse()方法,该方法很好用,但字母彼此不相连,它们是分开的。

    StringBuilder input = new StringBuilder();
    input.append(jTextField2.getText());
    input = input.reverse();
    jTextField1.setText(input.toString());
    
  3. 我在网站上使用翻页文字,效果也不佳。

  4. 我使用了相同的网站,但是使用jLabel可以正常工作。

我使用的其他方法,但是没有用:

  • 尝试定向jTextField1.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

  • 将IDE编码更改为URT-8(我正在使用Netbeans-JDK8)。

有人可以帮助我如何正确地用Java编写和打印阿拉伯语吗?

2 个答案:

答案 0 :(得分:1)

请参考此问题- Forcing RTL order in a JTextArea

这是一个建议,以字符\ u202e开头的字符串强制文本为RTL。

我也认为反向字符串不是一种好方法,因为当用户执行“复制粘贴”操作时,这不是良好的用户体验,因为他将复制反向字符串...

答案 1 :(得分:1)

完全由阿拉伯语块中的字符组成的字符串应以正确的RTL表示形式呈现,而没有任何方向性控制字符。如果不是这样,则可能是您的操作系统配置有问题,而不是Java代码有问题。反转字符串是一个糟糕的主意。尝试进行视觉顺序渲染会变得一团糟。