【问题标题】:Eclipse SWT Browser Displays Reversed HebrewEclipse SWT 浏览器显示反转的希伯来语
【发布时间】:2019-09-17 23:23:08
【问题描述】:

我在带有 Eclipse Oxygen (4.7.2) 的 Windows 7 上使用 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

我猜这是我电脑配置中的问题,但我不知道是什么,我希望有人能指出我在哪里看的方向。

【问题讨论】:

    标签: java html eclipse swing swt


    【解决方案1】:

    问题的根源在于&lt;pre&gt;标签中的一切都是“视觉顺序”

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

    我建议尝试以下方法:

    1. &lt;pre&gt;标签替换为&lt;div&gt;标签。

    2. &lt;div&gt;&lt;pre&gt; 中使用dir="rtl" attribute

    3. 让用户保存的代码的编码是UTF-8。

    【讨论】:

    • 关于第3点,你是说在编写文本文件的代码中,我应该将windows-1255替换为UTF-8
    • 是的。确保您的 java 代码始终以 UTF-8 格式保存。
    【解决方案2】:

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

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

    请注意,这是唯一的变化。所有其他代码都完全在我原来的问题中出现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-19
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 2011-06-06
      相关资源
      最近更新 更多