我在帶有 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 abovepw.println("</html>");pw.close();最后,當我運行我的 java 應用程序時,我在 java 命令中明確設置了file.encoding屬性,如下所示......-Dfile.encoding=UTF-8我猜這是我電腦配置中的問題,但我不知道是什么,我希望有人能指出我在哪里看的方向。
2 回答

牛魔王的故事
TA貢獻1830條經驗 獲得超3個贊
我沒有進行詳盡的測試,但到目前為止,對 HTML 的以下更改已經解決了這個問題。我添加標簽bdo作為標簽的子元素pre,即
<pre>
<bdo dir="ltr">
my Hebrew content
</bdo>
</pre>
請注意,這是唯一的更改。所有其他代碼與我原來的問題中出現的完全一樣。

蕭十郎
TA貢獻1815條經驗 獲得超13個贊
問題的根源在于<pre>
標簽中的一切都是“視覺順序”
通常,瀏覽器以“邏輯順序”呈現希伯來語。
我建議嘗試以下方法:
<pre>
用標簽替換<div>
標簽。使用or中的
dir="rtl"
屬性。<div>
<pre>
使用戶您保存的代碼的編碼為 UTF-8。
添加回答
舉報
0/150
提交
取消