De vloek van de diacrieten (part II)
Zie ook: http://joscoenen.blogspot.com/2007/09/de-vloek-van-de-diacrieten-blijft-op-de.html
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
En in web-applicaties ligt het ook moeilijk.
Het gebruik van een Filter om van een windows characterset naar UTF-8 encoding te komen is een oplossing, immers de queryString is daarvoor te gebruiken.
De parameterMap is immers al verkeerd gecodeerd (ISO8859-1)!
Zie: http://www.ibm.com/developerworks/java/library/j-tomcat/
In de web.xml staat dan:
Om het Filter de parameterMap van het request te laten wijzigen is een HttpServletRequestWrapper nodig: MutableHttpServletRequest
Het filter geeft deze wrapper terug in plaats van het oorspronkelijke ServletRequest.
Zie ook: http://forum.java.sun.com/thread.jspa?threadID=682565&messageID=9793595
En: http://weblogs.java.net/blog/felipegaucho/archive/2005/11/cleaning_the_se.html
The interface javax.servlet.http.HttpServletRequest is primary implemented through the class javax.servlet.http.HttpServletRequestWrapper and the map of parameters used by this class is locked, i.e., non-mutable. My filter was designed to replace the dangerous parameters by the clean ones, but the map doesn´t allow me to change the contents of the original parameters map. After some posts into discussion lists, I developed a request wrapper. I called that as MutableHttpServletRequest due to its mutable map of parameters.
See: http://64.233.183.104/search?q=cache:HLaJDX6FhvoJ:fisheye5.cenqua.com/browse/cejug-classifieds/web-app/JavaSource/net/java/dev/cejug/classifieds/util/MutableHttpServletRequest.java%3Fr%3D1.2+classifieds/util/MutableHttpServletRequest&hl=nl&ct=clnk&cd=1&gl=nl&client=firefox-a
En dit is kennelijk allemaal nodig om het EURO teken (€) intact te laten!
Dus niet: %E2%82%AC (dit is dan UTF-8)
http://www.eki.ee/letter/chardata.cgi?ucode=20a0-20cf
Zie ook: http://joscoenen.blogspot.com/2007/09/de-vloek-van-de-diacrieten-blijft-op-de.html
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
En in web-applicaties ligt het ook moeilijk.
Het gebruik van een Filter om van een windows characterset naar UTF-8 encoding te komen is een oplossing, immers de queryString is daarvoor te gebruiken.
De parameterMap is immers al verkeerd gecodeerd (ISO8859-1)!
Zie: http://www.ibm.com/developerworks/java/library/j-tomcat/
In de web.xml staat dan:
Om het Filter de parameterMap van het request te laten wijzigen is een HttpServletRequestWrapper nodig: MutableHttpServletRequest
Het filter geeft deze wrapper terug in plaats van het oorspronkelijke ServletRequest.
Zie ook: http://forum.java.sun.com/thread.jspa?threadID=682565&messageID=9793595
En: http://weblogs.java.net/blog/felipegaucho/archive/2005/11/cleaning_the_se.html
The interface javax.servlet.http.HttpServletRequest is primary implemented through the class javax.servlet.http.HttpServletRequestWrapper and the map of parameters used by this class is locked, i.e., non-mutable. My filter was designed to replace the dangerous parameters by the clean ones, but the map doesn´t allow me to change the contents of the original parameters map. After some posts into discussion lists, I developed a request wrapper. I called that as MutableHttpServletRequest due to its mutable map of parameters.
See: http://64.233.183.104/search?q=cache:HLaJDX6FhvoJ:fisheye5.cenqua.com/browse/cejug-classifieds/web-app/JavaSource/net/java/dev/cejug/classifieds/util/MutableHttpServletRequest.java%3Fr%3D1.2+classifieds/util/MutableHttpServletRequest&hl=nl&ct=clnk&cd=1&gl=nl&client=firefox-a
En dit is kennelijk allemaal nodig om het EURO teken (€) intact te laten!
Dus niet: %E2%82%AC (dit is dan UTF-8)
http://www.eki.ee/letter/chardata.cgi?ucode=20a0-20cf
No comments:
Post a Comment