Surrogate pair characters are not rendered in certain conditions.
To reproduce, try the following application:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override public void start(Stage stage) {
System.setProperty("proxyHost", "www-proxy.ru.oracle.com");
System.setProperty("proxyPort", "80");
System.out.println(com.sun.javafx.runtime.VersionInfo.getRuntimeVersion());
Text t = new Text("\ud800\udf02");
WebView wv = new WebView();
wv.getEngine().loadContent("<!DOCTYPE html><html><body>𐌂 </body></html>");
wv.setMaxSize(100, 100);
wv.setMinSize(100, 100);
wv.setPrefSize(100, 100);
WebView wv1 = new WebView();
wv1.getEngine().loadContent("<!DOCTYPE html><html><body>o 𐌂 </body></html>");
wv1.setMaxSize(100, 100);
wv1.setMinSize(100, 100);
wv1.setPrefSize(100, 100);
WebView wv2 = new WebView();
wv2.getEngine().load("http://en.wikibooks.org/wiki/Unicode/Character_reference/10000-10FFF");
VBox g = new VBox();
g.getChildren().addAll(t, wv, wv1, wv2);
Scene s = new Scene(g);
stage.setScene(s);
stage.sizeToScene();
stage.show();
}
}
Notice that even though the text and the first WebView (lavender one) render the character well, the second (pink) WebView does not render it.
WebView with reference table renders the character on some systems, and does not on others (character number in table is 10300-2 (x10302).
This might happen because WebKit doesn't render such character if it is the single character on line.