Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EclipseSWT浏览器显示反希伯来语_Java_Html_Eclipse_Swing_Swt - Fatal编程技术网

Java EclipseSWT浏览器显示反希伯来语

Java EclipseSWT浏览器显示反希伯来语,java,html,eclipse,swing,swt,Java,Html,Eclipse,Swing,Swt,我在Windows7上使用JDK1.8.0_201和EclipseOxygen(4.7.2)。我还安装了Microsoft Internet Explorer 11.0。我的JavaSwing应用程序嵌入了一个SWT。我的java代码编写了一个纯文本文件,其中包含“可视顺序”中的希伯来文文本,并使用html扩展名保存它。然后,我将浏览器的URL设置为指向我刚刚创建的HTML文件。当我运行应用程序时,浏览器以相反的顺序显示希伯来语。以英语为例,它不显示单词Hotel,而是显示letoH。这是HTM

我在Windows7上使用JDK1.8.0_201和EclipseOxygen(4.7.2)。我还安装了Microsoft Internet Explorer 11.0。我的JavaSwing应用程序嵌入了一个SWT。我的java代码编写了一个纯文本文件,其中包含“可视顺序”中的希伯来文文本,并使用html扩展名保存它。然后,我将
浏览器的URL设置为指向我刚刚创建的HTML文件。当我运行应用程序时,浏览器以相反的顺序显示希伯来语。以英语为例,它不显示单词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>

我猜这是我的电脑配置的问题,但我不知道是什么,我希望有人能告诉我该往哪里看。

问题的根源是在
标记中,一切都是“视觉顺序”

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

我建议尝试以下方法:

  • 标记替换为
    标记

  • 中播放

  • 使用户将保存的代码编码为UTF-8


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

    
    我的希伯来文内容
    

    请注意,这是唯一的变化。所有其他代码都是正如我在原始问题中所显示的那样。

    关于第3点,你是说在编写文本文件的代码中,我应该用
    UTF-8
    替换
    windows-1255
    ?是的。确保java代码始终保存在UTF-8中。
    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();
    
    -Dfile.encoding=UTF-8
    
    <pre>
        <bdo dir="ltr">
            my Hebrew content
        </bdo>
    </pre>