猿问

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

我在带有 Eclipse Oxygen (4.7.2) 的 Windows 7 上使用 JDK 1.8.0_201。我还安装了 Microsoft Internet Explorer 11.0。我的 java Swing应用程序嵌入了一个 SWT Browser。我的 java 代码编写了一个纯文本文件,其中包含按“视觉顺序”的希伯来语文本,并使用html扩展名保存它。然后我将 URL 设置为Browser指向我刚刚创建的 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

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


喵喵时光机
浏览 96回答 2
2回答

牛魔王的故事

我没有进行详尽的测试,但到目前为止,对 HTML 的以下更改已经解决了这个问题。我添加标签bdo作为标签的子元素pre,即<pre>&nbsp; &nbsp; <bdo dir="ltr">&nbsp; &nbsp; &nbsp; &nbsp; my Hebrew content&nbsp; &nbsp; </bdo></pre>请注意,这是唯一的更改。所有其他代码与我原来的问题中出现的完全一样。

萧十郎

问题的根源在于<pre>标签中的一切都是“视觉顺序”通常,浏览器以“逻辑顺序”呈现希伯来语。我建议尝试以下方法:<pre>用标签替换<div>标签。使用or中的dir="rtl"属性。<div><pre>使用户您保存的代码的编码为 UTF-8。
随时随地看视频慕课网APP

相关分类

Java
我要回答