2017-01-31 26 views
8

W niektórych witrynach zamiast poprawnego tekstu wyświetlane są znaki bełkotliwe. Dzieje się tak tylko na komputerach Mac.Problem z czcionką JavaFX WebView na komputerze Mac

Na przykład z GMapsFX: enter image description here

Online site: enter image description here

może być związane z OS X 10.11 lub 10.12. Testowałem to z Javą 1.8.0_121.

Czy jest jakaś poprawka lub obejście tego problemu?

+0

nie znalazłeś rozwiązania? – JohnnyAW

+0

Obawiam się, że nie ... – Erel

+2

po kilku godzinach znalazłem obejście problemu, które było w porządku dla mojej aplikacji. Ustawiłem słuchacza na 'documentProperty' z' WebEngine'. Następnie, gdy tylko dokument jest dostępny, uruchamiam kod javascript za pomocą 'webEngine.executeScript()', który jest iterowaniem wszystkich elementów, które wcześniej zidentyfikowałem w przeglądarce, i ustaw styl inline, który zastąpi czcionkę z pliku css : 'węzły [i] .style.fontFamily = 'Serif';'. Całkiem nieprzyjemnie, wiem, ale to było najlepsze rozwiązanie, które udało mi się znaleźć ... Hmm, myślę, że to ci nie pomoże, ponieważ prawdopodobnie masz dynamiczny HTML – JohnnyAW

Odpowiedz

3

Błąd, w moim przypadku, nie był związany z czcionką systemową. Rozwiązałem problem, ustawiając klienta użytkownika dla silnika sieciowego. Oto ciąg użyłem (Firefox na Windows x64):

Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0) Gecko/20100101 Firefox/10.0

+0

Udając, że jesteś Windows, kiedy jesteś Macem, może nie być taki dobry pomysł. Może powodować inne niezamierzone skutki uboczne. Naprawiłem to tak: 'engine.setUserAgent (engine.getUserAgent(). Replace (" Macintosh; "," "));" Wierzę, że problem jest następujący: Serwer, który dostarcza czcionki używa UserAgent do określenia, która czcionka wysłać. A kiedy popełnia błąd z powodu wprowadzającej w błąd UserAgent, dostarcza niewłaściwą. A ponadto przypuszczam, że Mac nie poradzi sobie z dostarczonym formatem, a na tym skończy się bełkot. –