JavaFX Webview 编码错误

标签 java encoding webview javafx

我尝试在 java 中打开一个 webview 并显示 spotify 登录页面。 ( https://accounts.spotify.com/en/login ):

JFrame f = new JFrame();
    f.setTitle("Spotify");
    f.setSize(500,500);
    f.setVisible(true);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JFXPanel jfxPanel = new JFXPanel();
    f.add(jfxPanel);
    Platform.runLater(() -> {
        WebView webView = new WebView();
        jfxPanel.setScene(new Scene(webView));
        WebEngine webEngine = webView.getEngine();
        webEngine.load("https://accounts.spotify.com/en/login");
    });

结果就是下面的窗口。 (当我复制神秘文本并将其粘贴到另一个应用程序中时,它会向我显示具有正确编码的文本。
如何使用正确的编码显示 spotify 登录页面?

http://fs2.directupload.net/images/150909/zyk25eqz.png

最佳答案

我看到了this在我的 WebView 中的 Dropbox 登录页面也是如此。

您遇到的问题与编码无关。 JavaFx WebView 在加载本地字体时存在一些问题。 如果您加载一个网站,该网站想要加载您计算机上安装的本地字体,您将看到这些神秘字母。 如果删除字体,您将照常看到文本。

所以你的问题不是网站的编码,而是 spotify 想要加载的字体,而且你的电脑上有本地字体。

您必须找到一种方法来阻止 WebView 加载本地字体。 也许通过注入(inject)一些代码。

关于JavaFX Webview 编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32484117/

相关文章:

Android:WebView 兼容性(Chromium 和 WebKit WebView)

java - Maven 添加生成的文件夹(使用 Maven 插件)作为源文件夹,IntelliJ 无法识别

Java - 为什么这个小程序的背景没有显示为浅蓝色(青色)?

c - 使用 libavcodec 编码 h264 时如何限制 CPU 使用率?

java - Intellij tomcat 服务器控制台编码问题与 log4j 的编码 = UTF-8?

android - 尝试添加下拉刷新时 Webview 崩溃

android - Android Webview 中的 HTML 输入文件

java - 使用java获取mysql数据库大小

java - 无论我使用哪个 JEE 异常(exception),Postman 都会返回状态 500

java - 如何在 Java 中查找默认字符集/编码?