Java EclipseSWT浏览器显示反希伯来语
我在Windows7上使用JDK1.8.0_201和EclipseOxygen(4.7.2)。我还安装了Microsoft Internet Explorer 11.0。我的JavaSwing应用程序嵌入了一个SWT。我的java代码编写了一个纯文本文件,其中包含“可视顺序”中的希伯来文文本,并使用html扩展名保存它。然后,我将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
浏览器的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>