我目前正在使用阿拉伯语言的Java项目上工作,如图所示,我发现用阿拉伯语编写时遇到了困难:
我添加了一个reverse()
方法,该方法很好用,但字母彼此不相连,它们是分开的。
StringBuilder input = new StringBuilder();
input.append(jTextField2.getText());
input = input.reverse();
jTextField1.setText(input.toString());
我在网站上使用翻页文字,效果也不佳。
jLabel
可以正常工作。我使用的其他方法,但是没有用:
尝试定向jTextField1.applyComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
将IDE编码更改为URT-8(我正在使用Netbeans-JDK8)。
有人可以帮助我如何正确地用Java编写和打印阿拉伯语吗?
答案 0 :(得分:1)
请参考此问题- Forcing RTL order in a JTextArea
这是一个建议,以字符\ u202e开头的字符串强制文本为RTL。
我也认为反向字符串不是一种好方法,因为当用户执行“复制粘贴”操作时,这不是良好的用户体验,因为他将复制反向字符串...
答案 1 :(得分:1)
完全由阿拉伯语块中的字符组成的字符串应以正确的RTL表示形式呈现,而没有任何方向性控制字符。如果不是这样,则可能是您的操作系统配置有问题,而不是Java代码有问题。反转字符串是一个糟糕的主意。尝试进行视觉顺序渲染会变得一团糟。