Encoding 小门——”;“加倍”;UTF-8编码

Encoding 小门——”;“加倍”;UTF-8编码,encoding,build,wicket,Encoding,Build,Wicket,我有一个Wicket 1.4应用程序。我的.html文件是UTF-8格式的 但是当呈现时,页面被双重编码,就像UTF-8内容被视为cp1250并转换为UTF8一样 Maven的pom.xml: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> ... <plugin> <inherite

我有一个Wicket 1.4应用程序。我的.html文件是UTF-8格式的

但是当呈现时,页面被双重编码,就像UTF-8内容被视为cp1250并转换为UTF8一样

Maven的pom.xml:

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
<plugin>
  <inherited>true</inherited>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
    <optimize>true</optimize>
    <debug>true</debug>
    <encoding>utf-8</encoding>
 </configuration>
</plugin>

UTF-8
...
符合事实的
org.apache.maven.plugins
maven编译器插件
1.6
1.6
符合事实的
符合事实的
utf-8
你知道我该查什么吗

更新:我找到了答案,请参见下文。但是,我可以设置读取资源时应该使用的默认编码吗?应用程序中的设置优先于环境变量

谢谢,
Ondra

Wicket关注XML序言。因此,缺少的是

<?xml version="1.0" encoding="UTF-8"?>


Wicket注意XML序言。因此,缺少的是

<?xml version="1.0" encoding="UTF-8"?>


在面板的.html文件中。

org.apache.wicket.settings.settings有一个
setDefaultMarkupEncoding()
方法,该方法应该可以执行您想要的操作。

org.apache.wicket.settings.settings
有一个
setDefaultMarkupEncoding()
方法,这应该是你想要的。

我很惊讶这不是默认值,至少在从jar文件内部读取时是这样。在Wicket 6+:getMarkupSettings().setDefaultMarkupEncoding(“UTF-8”);我很惊讶这不是默认值,至少在从jar文件内部读取时是这样。在Wicket 6+:getMarkupSettings().setDefaultMarkupEncoding(“UTF-8”);我认为这更便于移植,特别是考虑到页面/组件可以嵌入(视为库)到另一个应用程序中,并且父应用程序可能有不同的设置。虽然
UTF-8
无疑是一种最佳实践,但在某些情况下,强制应用程序不使用任何其他编码是不实际的。我认为这更便于移植,特别是考虑到页面/组件可以嵌入(视为库)到另一个应用程序中,并且父应用程序可能具有不同的设置。虽然
UTF-8
无疑是一种最佳实践,但在某些情况下,强制应用程序不使用任何其他编码是不切实际的。