【发布时间】:2014-05-15 15:06:45
【问题描述】:
我有一个 xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- The xml file -->
我正在用 jaxb 和 maven 从那个 xsd 生成类:
<plugin>
<groupId>org.jvnet.jaxb2.maven2</groupId>
<artifactId>maven-jaxb2-plugin</artifactId>
<version>0.8.0</version>
<configuration>
<schemaDirectory>src/main/resources/xsd</schemaDirectory>
<bindingDirectory>src/main/resources/xsd</bindingDirectory>
<generatePackage>be.fgov.minfin.bbf.business.fileprocessing.jaxb</generatePackage>
<encoding>UTF-8</encoding>
<strict>false</strict>
<extension>true</extension>
<plugins>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>0.6.2</version>
</plugin>
<plugin>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.2</version>
</plugin>
</plugins>
<args>
<arg>-Xannotate</arg>
<arg>-XtoString</arg>
</args>
</configuration>
<executions>
<execution>
<id>generate</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
文件生成正确,但是生成的文件编码为Cp1252,为什么?当我尝试编译时,我得到了一个不可映射的字符,用于编码内部“é”字符的 UTF-8 异常。
我正在设置:
${project.build.sourceEncoding}
我的主 pom.xml 中的变量为 UTF-8..
【问题讨论】:
-
您为 jaxb 使用了不同的插件。您引用的文档中的插件具有不同的 groupid 和 artifactid。也许它与这个插件一起工作。
-
你是对的,没有注意到。从问题中删除它。
-
但是你应该使用 codehaus 的那个。你用的那个好像没有这个编码选项。
-
我在另一个项目中使用 codehaus 插件,它也会生成 Cp1252,尽管主 pom 也设置为 UTF-8。 NVM ..看起来不对。它是 UTF-8。
-
我正在使用 codehaus 插件,它仍然是 Cp1252。我猜还有一个问题..