It seems RequestUtils.toAbsolutePath() has a bug regarding to UTF-8 encoded
page parameter :

I have a bookmarkable page  , which takes a UTF-8 encoded parameter "place"
:

private PageParameters pps;
pps.put("place", URLEncoder.encode(place , "UTF-8"));

In this Page , I have a TextField that prints the URL for this page (for
users to copy) :
String url = RequestUtils.toAbsolutePath("");
    TextField resultUrl;
    resultUrl = new TextField("resultUrl");
    resultUrl.setModel(new Model( url ));
    resultUrl.setEscapeModelStrings(false);
    resultUrl.setOutputMarkupId(true);
    add(resultUrl);


For example , "台北市" (meaning Chinese word : "Taipei" ) is encoded correctly
to :
place/%25E5%258F%25B0%25E5%258C%2597%25E5%25B8%2582
And it is correctly shown in the browser URL bar.

But incorrect in the textfield :
place/%E5%8F%B0%E5%8C%97%E5%B8%82

Is it a bug ? If not , how to solve it ?

Reply via email to