Thursday, August 27, 2009, 2:45:52 PM, Martin Gainty wrote: > so the template is the ultimate arbiter for encoding the output
No, it isn't at all. If the ContentType init-param of FreemarkerServlet specifies the charset then that will be the output encoding, end of story. The template only has the last word regarding the encoding of itself, i.e., of the template file, which is not to be confused with the output the template generates. The encoding of the template file is just used as the *default* encoding of the output. > thank you for this comprehensive explanation > > Martin Gainty > ______________________________________________ > Jogi és Bizalmassági kinyilatkoztatás > > Ez az üzenet bizalmas. Ha nem ön az akinek szánva volt, akkor > kérjük, hogy jelentse azt nekünk vissza. Semmiféle továbbítása vagy > másolatának készítése nem megengedett. Ez az üzenet csak ismeret > cserét szolgál és semmiféle jogi alkalmazhatósága sincs. Mivel az > electronikus üzenetek könnyen megváltoztathatóak, ezért minket semmi > felelöség nem terhelhet ezen üzenet tartalma miatt. > > > > > > >> Date: Thu, 27 Aug 2009 13:16:42 +0200 >> From: ddek...@freemail.hu >> To: mgai...@hotmail.com >> CC: user@struts.apache.org; musa...@gmail.com; >> freemarker-u...@lists.sourceforge.net >> Subject: Re: Freemarker Text Encoding Error >> >> Thursday, August 27, 2009, 2:57:39 AM, Martin Gainty wrote: >> >> > this is good information zoran! >> > >> > can we specify contentType="text/html;charset=UTF-8" thru init-params? >> >> Zoran talks about JSP stuff (<%@ page ...%>), so the FreemarkerSerlvet >> config should be irrelevant there. >> >> As of the pages generated by the FreemarkerSerlvet, in principle the >> "default_encoding" init-param is for specifying the encoding of the >> template file (not of the output), and the "ContentType" init-param >> specifies the MIME-type and the encoding of the output. BUT, in the >> case of FreemarkerServlet, if the "ContentType" doesn't specify the >> encoding (i.e., it's not like "text/html; charset=SOMETHING", but like >> "text/html") then the encoding of the template file is used for >> encoding the output as well. So in the below quoted example both the >> template encoding and the output encoding is ISO-8859-1 (except for >> the templates that explicitly override that with <#ftl >> encoding="SOMETHING-DIFFERENT">). >> >> > <servlet> >> > <servlet-name>freemarker</servlet-name> >> > >> > <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class> >> > >> > <!-- FreemarkerServlet settings: --> >> > <init-param> >> > <param-name>ContentType</param-name> >> > <param-value>text/html</param-value> >> > </init-param> >> > <!-- FreeMarker settings: --> >> > <param-name>default_encoding</param-name> >> > <param-value>ISO-8859-1</param-value> >> > </init-param> >> > <servlet> >> > <servlet-mapping> >> > <servlet-name>freemarker</servlet-name> >> > <url-pattern>*.ftl</url-pattern> >> > </servlet-mapping> >> > reprised from FreeMarkerServlet documentation at >> > http://struts.apache.org/2.1.6/docs/tutoriallesson04-03.html >> > >> > /dziekuje/ >> > Martin Gainty >> > ______________________________________________ >> > Jogi és Bizalmassági kinyilatkoztatás >> > >> > Ez az üzenet bizalmas. Ha nem ön az akinek szánva volt, akkor >> > kérjük, hogy jelentse azt nekünk vissza. Semmiféle továbbítása vagy >> > másolatának készítése nem megengedett. Ez az üzenet csak ismeret >> > cserét szolgál és semmiféle jogi alkalmazhatósága sincs. Mivel az >> > electronikus üzenetek könnyen megváltoztathatóak, ezért minket semmi >> > felelöség nem terhelhet ezen üzenet tartalma miatt. >> > >> > >> > >> > >> > >> > >> > >> >> Date: Thu, 27 Aug 2009 10:17:03 +1000 >> >> Subject: Re: Freemarker Text Encoding Error >> >> From: zo...@sparecreative.com >> >> To: user@struts.apache.org; musa...@gmail.com; >> >> freemarker-u...@lists.sourceforge.net; ddek...@freemail.hu >> >> >> >> Apologies in advance for the cross post, but it saves on typing. >> >> >> >> I found that the solution was simple in the end. While testing various >> >> options I noticed I had one page that worked. In identifying the >> >> difference >> >> between that and the others there was a difference in the content jspf for >> >> that page, it had a <%@ page contentType="text/html;charset=UTF-8" >> >> language="java"%> while the others didn't. >> >> >> >> I thought there was no longer a need for these in JSP fragments, the main >> >> JSP page has one as does the sitemesh decorator. But obviously I was >> >> wrong. >> >> >> >> So thanks again for your help guys. >> >> >> >> Z. >> >> >> >> > >> >> > It is good to post here, but for tricky stuff like this, you have a >> >> > better chance with them. Also if you find the solution, please let us >> >> > know. >> >> > >> >> > musachy >> >> > >> >> > On Tue, Aug 25, 2009 at 10:38 PM, Zoran >> >> > Avtarovski<zo...@sparecreative.com> wrote: >> >> >> > I knew somebody would say that. I was too lazy to subscribe and I >> >> >> > half >> >> >> > expected them to ask on the struts list. >> >> >> > >> >> >> > Thanks Musachy, I'll subscribe and post now. I guess I was hoping >> >> >> > others >> >> >> > might have experienced a similar problem. >> >> >> > >> >> >> > Z. >> >> >> > >> >> >> > did you try asking the FreeMarker guys? >> >> >> > >> >> >> > On Tue, Aug 25, 2009 at 7:26 PM, Zoran >> >> >> > Avtarovski<zo...@sparecreative.com> wrote: >> >> >>> >> Iąm having trouble displaying Danish text in my forms using the >> >> >>> >> struts >> >> >>> >> tags >> >> >>> >> and I think it related to an error with how freemarker gets the >> >> >>> >> locale. >> >> >>> >> Iąm >> >> >>> >> getting a lot of question marks in the text, but if I set the >> >> >>> >> server >> >> >>> local >> >> >>> >> to Danish, all works as expected. Obviously thatąs not a solution >> >> >>> >> as the >> >> >>> >> other languages also have problems. >> >> >>> >> >> >> >>> >> For example the s:select tag is incorrectly displaying some Danish >> >> >>> >> text. >> >> >>> >> But >> >> >>> >> if I go in and edit the freemarker template file and change the >> >> >>> >> label >> >> >>> >> display from ${} notation to one using <@s.property /> tag it >> >> >>> >> works as >> >> >>> >> expected. >> >> >>> >> >> >> >>> >> Hereąs the details >> >> >>> >> >> >> >>> >> <@s.property value="%{parameters.label}"/> prints the correct text: >> >> >>> >> >> >> >>> >> Hvornĺr (ca.) begyndte de nuvćrende rygsmerter eller bensmerter >> >> >>> >> (iskias)? >> >> >>> >> >> >> >>> >> But ${parameters.label?html} prints texts with Ś?ą substituted for >> >> >>> >> unsupported characters : >> >> >>> >> >> >> >>> >> Hvorn?r (ca.) begyndte de nuv?rende rygsmerter eller bensmerter >> >> >>> >> (iskias)? >> >> >>> >> >> >> >>> >> >> >> >>> >> I can see one solution is to change all the freemarker template >> >> >>> >> files and >> >> >>> >> replace ${} with <@s.property/>. >> >> >>> >> >> >> >>> >> But Iąm sure there has to be a simpler solution. >> >> >>> >> >> >> >>> >> Please, please help. As at the rate Iąm going I wonąt be needing a >> >> >>> haircut >> >> >>> >> for a while. >> >> >>> >> >> >> >>> >> Z. >> >> >>> >> >> >> >> > >> >> >> > >> >> >> > >> >> > >> >> > >> >> >> > >> > Get back to school stuff for them and cashback for you. Try BingT now. >> -- >> Best regards, >> Daniel Dekany >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org >> For additional commands, e-mail: user-h...@struts.apache.org >> > > HotmailR is up to 70% faster. Now good news travels really fast. Try it now. -- Best regards, Daniel Dekany --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org