Scene Builder で FXML ファイルを生成します。キリル文字を含める必要があります。
このファイルを Scene Builder で編集すると、通常のキリル文字が表示されます (画面 1)
この FXML ファイルを使用してプログラムをコンパイルして実行すると、キリル文字ではなくいくつかのアーティファクトが表示されます (画面 2) 。
しかし、画面 3でわかるように、その xml ファイルのエンコーディングは UTF-8 です。また、ANSI で保存されていることがわかります。
私は他のエディタ (デフォルトの eclipse と sublime text 2) でそれを開こうとしましたが、どちらも間違ったエンコーディングを示しています。(画面 4と画面 5 )
最初に、ansiからutf-8に変換しようとしました(メモ帳++を使用)。
その後、eclipse と sublime text 2 は、当然のことながらキリル文字を表示し始めました。
しかし。Scene Builder でこのファイルを開こうとすると、エラーが発生しました。
Error loading file
C:\eclipse\workspace\pr\src\main\java\ru\i\ava\pr\test.fxml.
C:\eclipse\workspace\pr\src\main\java\ru\i\ava\pr\test.fxml:1: ParseError
at [row,col]:[1,1]
Message: Content is not allowed in prolog.
そしてJavaコンパイラは私にエラーを与えました:
июн 08, 2012 8:11:03 PM javafx.fxml.FXMLLoader logException
SEVERE: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.
/C:/eclipse/workspace/pr/target/classes/ru/i/ava/pr/test.fxml:1
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at ru.i.ava.pr.PrFX.start(PrFX.java:22)
at com.sun.javafx.application.LauncherImpl$5.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$4.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$3.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
at com.sun.glass.ui.win.WinApplication$2$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at com.sun.javafx.application.LauncherImpl.access$000(Unknown Source)
at com.sun.javafx.application.LauncherImpl$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javafx.fxml.LoadException: javax.xml.stream.XMLStreamException: ParseError at
[row,col]:[1,1]
Message: Content is not allowed in prolog.
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at ru.i.ava.pr.PrFX.start(PrFX.java:22)
at com.sun.javafx.application.LauncherImpl$5.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$4.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$3.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
at com.sun.glass.ui.win.WinApplication$2$1.run(Unknown Source)
... 1 more
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
at javax.xml.stream.util.StreamReaderDelegate.next(Unknown Source)
... 14 more
だから、私はそれをANSIに戻しました。
そして、このファイルを ANSI で作成し、その「アーティファクト」テキストを手動でキリル文字に変更しました。
プログラムを実行すると通常のテキストが表示されるようになりましたが、Scene Builder でこの固定ファイルを開くと、
Scene Builder は、いくつかの「アーティファクト」テキストを表示します(画面 7)。
では、どうすればこの状況を修正できますか?