当前位置: 首页 > 面试题库 >

错误:在Maven编译期间无法编码的字符用于编码UTF8

步骏
2023-03-14
问题内容

我正在使用maven编译软件包,它说生成失败,并显示以下编译错误:

SpanishTest.java [31,81]不可编码的字符,用于编码UTF8

我在线上搜索了很多人,将源编码从UTF-8更改为ISO-8859-1似乎可行,但是我仍然遇到相同的编译错误。我正在使用32位Ubuntu。这是该标签在我的pom.xml中的外观

<project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>

即使我将<project.build.outputEncoding>标签更改为ISO-8859-1,我仍然会收到错误消息,可能是由于Java版本引起的吗?我的系统上同时安装了sun
java和openjdk。

谁能让我知道该怎么办。

谢谢


问题答案:

配置maven-compiler-plugin以使用与源文件编码相同的字符编码(例如):

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

默认情况下,许多Maven插件将使用“ project.build.sourceEncoding”属性,因此在pom中进行设置将覆盖大多数插件。

<project>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
...

但是,我更喜欢明确地说,我更喜欢在支持它的每个插件的配置中设置编码。

当您的源代码由maven-compiler-
plugin编译时,编译器插件会使用配置了编译器插件的任何编码来读取源代码文件。如果源文件的编码与编译器插件使用的编码不同,则两种编码中可能不存在某些字符。

许多人喜欢将其源文件上的编码设置为UTF-8,以避免出现此问题。要在Eclipse中执行此操作,可以右键单击一个项目,然后选择Properties->
Resource-> Text File Encoding,然后将其更改为UTF-8。这将以UTF-8编码所有源文件。(您还应该如上所述将Maven-
compiler-plugin显式配置为使用UTF-8编码。)使用源文件和编译器插件都使用相同的编码,在编译期间不应再有不可映射的字符。

注意,您还可以通过Window-> Preferences-> General-> Workspace-> Text File
Encoding在Eclipse中全局设置文件编码。您还可以通过“窗口”->“首选项”->“常规”->“内容类型”来设置每种文件类型的编码。



 类似资料:
  • 问题内容: 我不确定要如何处理此错误。我认为这与需要添加.encode(’utf-8’)有关。但是我不确定这是否是我需要做的,也不是应该在哪里应用。 错误是: 这是我的python脚本的基础。 问题答案: Python 2.x CSV库已损坏。您有三个选择。按照复杂度的顺序: 编辑:请参见下文 使用固定库 https://github.com/jdunck/python-unicodecsv( )

  • 问题内容: 当上传具有非ASCII字符的文件时,出现UnicodeEncodeError: 我使用MySQL,nginx和FastCGI运行Django 1.2。 根据Django Trac数据库,这是已解决的问题,但是我仍然有问题。欢迎提供有关如何修复的任何建议。 编辑:这是我的图像字段: 问题答案: 在对此进行更多调查之后,我发现我尚未在我的主要Nginx配置文件中设置字符集: 通过添加以上内

  • 问题内容: 当我在Netbeans中构建并运行程序时,它可以正常工作。但是当我尝试“ mvn compile”时,使用相同的pom.xml文件会出现以下错误: 我的Java版本不是1.3,这里是“ mvn -version”的结果 这是第53行: 问题答案: 问题是在Maven2中默认使用和 您可以通过将其添加到pom中来解决此问题: 将其放在最顶层的父pom中是很实际的,这样您派生的pom不需要

  • 编译模块com。实例我的包裹。GWT。HelloGWT [INFO]验证新编译的单元 [INFO]在第一次过程中忽略了1个单元,其中包含编译错误 [INFO]编译时将-strict或-logLevel设置为TRACE或DEBUG以查看所有错误 [INFO]在文件:/home/ilsurih/Projects/maven hibernate/src/main/java/com/example/myP

  • 问题内容: 我正在尝试抓取一个网站,但这给我一个错误。 我正在使用以下代码: 我收到以下错误: 我该怎么做才能解决此问题? 问题答案: 我通过添加将其修复。 那意味着变成。

  • 问题内容: 当我尝试在数据库中插入外来字符时,可能是什么导致此错误? 而我该如何解决呢? 谢谢! 问题答案: 字符U + 201C左双引号在Latin-1(ISO-8859-1)编码中不存在。 这 是 目前在代码页1252(西欧)。这是Windows特定的编码,基于ISO-8859-1,但会将多余的字符放入0x80-0x9F范围内。代码页1252通常与ISO-8859-1混淆,这是一种令人烦恼但现