Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Windows中使用Gradle构建时Vaadin 8框架应用程序中的编码问题_Java_Windows_Gradle_Character Encoding_Vaadin8 - Fatal编程技术网

Java 在Windows中使用Gradle构建时Vaadin 8框架应用程序中的编码问题

Java 在Windows中使用Gradle构建时Vaadin 8框架应用程序中的编码问题,java,windows,gradle,character-encoding,vaadin8,Java,Windows,Gradle,Character Encoding,Vaadin8,当您使用Gradle插件构建应用程序时,只要您使用Linux或Mac,一切都可以正常工作setContent(新标签(“abcÅÄÖ”)按预期打印字符abcÅÄÖ 但是,如果在Windows中运行应用程序,则会打印出以下字符:A B CÃ…ÃÖ 我怎样才能解决这个问题 请参阅下面a中的基本文件 格雷德尔先生 plugins { id 'com.devsoap.plugin.vaadin' version '2.0.0.beta2' } ExampleUI.java @SuppressWa

当您使用Gradle插件构建应用程序时,只要您使用Linux或Mac,一切都可以正常工作
setContent(新标签(“abcÅÄÖ”)
按预期打印字符
abcÅÄÖ

但是,如果在Windows中运行应用程序,则会打印出以下字符:
A B CÃ…ÃÖ

我怎样才能解决这个问题

请参阅下面a中的基本文件

格雷德尔先生

plugins {
  id 'com.devsoap.plugin.vaadin' version '2.0.0.beta2'
}
ExampleUI.java

@SuppressWarnings(“串行”)
公共类ExampleUI扩展UI{
@凌驾
受保护的void init(VaadinRequest请求){
setContent(新标签(“abcÅÄÖ”);
}
}
示例servlet.java

@WebServlet(
asyncSupported=false,
urlPatterns={”/*,“/VAADIN/*”},
初始参数={
@WebInitParam(name=“ui”,value=“haba713.ExampleUI”)
})
公共类ExampleServlet扩展了VaadinServlet{
私有静态最终长serialVersionUID=1L;
}
环境

  • Windows 10 Pro,版本20H2,操作系统版本19042.985
  • OpenJDK 64位服务器虚拟机(采用OpenJDK)(构建25.282-b08,混合模式)
  • 梯度5.6.4
  • com.devsoap.plugin.vaadin版本2.0.0.beta2

Linux和Mac上的java源代码默认为UTF-8编码(编辑器),显然也由UTF-8(编译器)编译

在编辑器
ÅÄÖ
中源代码未更改的窗口上,将被视为奇怪的字符对。如果编辑器显式设置为UTF-8,则它们将正确显示

但显然,编译器使用默认的平台编码,从而产生这些对

因此,设置gradle编译器编码

compileJava {
    options.encoding = 'UTF-8'
}
(在gradle方面没有太多经验。)


由于IDE通常会隐藏gradle的构建过程,因此也可以将编辑器/编译器编码设置为UTF-8。

Linux和Mac上的java源代码默认为UTF-8编码(编辑器),显然也是由UTF-8(编译器)编译的

在编辑器
ÅÄÖ
中源代码未更改的窗口上,将被视为奇怪的字符对。如果编辑器显式设置为UTF-8,则它们将正确显示

但显然,编译器使用默认的平台编码,从而产生这些对

因此,设置gradle编译器编码

compileJava {
    options.encoding = 'UTF-8'
}
(在gradle方面没有太多经验。)


由于IDE通常会影响gradle的构建过程,因此还应将编辑器/编译器编码设置为UTF-8。

如果是控制台应用程序,则在运行之前使用它……不,不是。Vaadin 8是一个基于GWT的web框架。请不要将我们发送到其他地方来找出您的问题陈述。这是你作为这个问题的作者的工作。在这里发布相关的细节和上下文。我在问题中包括了基本的文件内容。这是以下类型的一个简单案例(Python中的示例):
“ÄÖ”。encode('utf-8')。decode('cp1252')
返回
“ÅÖ”
。如果它是一个控制台应用程序,那么在运行它之前使用它……不,它不是。Vaadin 8是一个基于GWT的web框架。请不要将我们发送到其他地方来找出您的问题陈述。这是你作为这个问题的作者的工作。在这里发布相关细节和上下文。我在问题中包括了基本的文件内容。这是一个简单的例子(Python中的例子):
“ÄÖ”。encode('utf-8')。decode('cp1252')
返回
“Ã…ÃÖ”
。谢谢Joop Eggen!这一次解决了这个问题。谢谢Joop Eggen!这一次解决了这个问题。