2010-11-17 34 views
1

我有一个Wicket 1.4应用程序。我的.html文件是UTF-8。Wicket - “doubled”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> 

任何想法我应该检查?

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

感谢, Ondra

回答

3

org.apache.wicket.settings.Settings有一个setDefaultMarkupEncoding()方法,它应该做你想做的。

+0

我很惊讶这不是默认的,至少从jar文件里读取时是这样。 Wicket 6+中的 – Trejkaz 2012-12-17 04:59:57

+1

:getMarkupSettings()。setDefaultMarkupEncoding(“UTF-8”); – 2013-10-31 13:52:01

1

检票注重XML序言。所以缺少的是

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

在面板的.html文件中。

+0

我认为这更便于携带,尤其是当考虑到可以在另一个应用程序中嵌入页面/组件(视为库)并且父应用程序可能具有不同的设置时。虽然'UTF-8'确实是一个最佳实践,但有些情况下,强制应用程序不使用任何其他编码是不现实的。 – 2013-09-17 16:42:12