【发布时间】:2021-05-21 19:42:40
【问题描述】:
当您使用 Gradle 插件 com.devsoap.plugin.vaadin 构建 Vaadin 8 应用程序时,只要您使用 Linux 或 Mac,一切都可以正常工作。 setContent(new Label("A B C Å Ä Ö")) 按预期打印出字符 A B C Å Ä Ö。
但是,如果您在 Windows 中运行该应用程序,则会打印出以下字符:A B C Ã… Ä Ö。
我该如何解决这个问题?
请参阅下面sample project 中的基本文件。
build.gradle
plugins {
id 'com.devsoap.plugin.vaadin' version '2.0.0.beta2'
}
ExampleUI.java
@SuppressWarnings("serial")
public class ExampleUI extends UI {
@Override
protected void init(VaadinRequest request) {
setContent(new Label("A B C Å Ä Ö"));
}
}
ExampleServlet.java
@WebServlet(
asyncSupported=false,
urlPatterns={"/*","/VAADIN/*"},
initParams={
@WebInitParam(name="ui", value="haba713.ExampleUI")
})
public class ExampleServlet extends VaadinServlet {
private static final long serialVersionUID = 1L;
}
环境
- Windows 10 专业版,版本 20H2,操作系统版本 19042.985
- OpenJDK 64 位服务器 VM (AdoptOpenJDK)(内部版本 25.282-b08,混合模式)
- Gradle 5.6.4
- com.devsoap.plugin.vaadin 版本 2.0.0.beta2
【问题讨论】:
-
如果它是一个 console 应用程序,那么在运行它之前使用
chcp 65001before... -
不,不是。 Vaadin 8 是一个基于 GWT 的 Web 框架。
-
不要将我们发送到其他地方来找出您的问题陈述。这是您作为本问题作者的工作。在此处发布相关详细信息和上下文。
-
我在问题中包含了基本文件内容。
-
这是一个简单的mojibake 情况如下(Python 中的示例):
'Å Ä Ö'.encode('utf-8').decode('cp1252')返回'Ã… Ä Ö'。
标签: java windows gradle character-encoding vaadin8