Eclipse SWT浏览器显示反向希伯来语

时间:2019-04-29 10:37:16

标签: java html eclipse swing swt

我正在Windows 7和Eclipse Oxygen(4.7.2)上使用JDK 1.8.0_201。我还安装了Microsoft Internet Explorer 11.0。我的Java Swing 应用程序嵌入了SWT Browser。我的Java代码编写了一个纯文本文件,该文件以“可视顺序”包含希伯来语文本,并以 html 扩展名保存。然后,我将Browser的URL设置为指向刚创建的HTML文件。当我运行应用程序时,Browser以相反的顺序显示希伯来语。以一个英语示例为例,它不显示单词 Hotel ,而是显示 letoH 。这是HTML ...

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO8859-8">
    <style type="text/css">
      body{font-family:"Miriam Fixed"; font-size:12px;}
    </style>
  </head>
  <body>
    <pre>
      my Hebrew content
    </pre>
  </body>
</html>

这是编写文件的Java代码

java.io.PrintWriter pw = new java.io.PrintWriter("filename.html", "windows-1255");
pw.println("<html>");
// remainder of "println()" calls to create content as shown above
pw.println("</html>");
pw.close();

最后,当我运行Java应用程序时,我像这样...中那样在java命令中显式设置了 file.encoding 属性。

-Dfile.encoding=UTF-8

我猜想这是计算机配置中的某件事,但我不知道是什么,我希望有人可以指出我的位置。

2 个答案:

答案 0 :(得分:0)

问题的根源在于,<pre>标签中的所有内容都是“视觉顺序”

通常,浏览器以“逻辑顺序”呈现希伯来语。

我建议尝试以下方法:

  1. <pre>标签替换为<div>标签。

  2. <div><pre>中玩dir="rtl" attribute

  3. 使用户保存的代码的编码为UTF-8。

答案 1 :(得分:0)

我没有进行详尽的测试,但是到目前为止,对HTML的以下更改已解决了该问题。我添加了标签bdo作为pre标签的子元素,即

<pre>
    <bdo dir="ltr">
        my Hebrew content
    </bdo>
</pre>

请注意,这是唯一的更改。其他所有代码都是恰好,就像我原始问题中显示的那样。