tomcat-taglibs-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kris Schneider <k...@dotech.com>
Subject Re: x:out ignores XML documents character encoding
Date Fri, 31 Mar 2006 02:47:50 GMT
One quick thing to try - remove the lines:

<% response.setContentType("text/html; charset=UTF-8"); %>

and

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >

Then, add the directive:

<%@ page pageEncoding="UTF-8" %>

Also import like so:

<c:import url="/reports.xml" charEncoding="UTF-8"/>

Does that change anything?

Eric Webster wrote:
> Perhaps someone can tell me if this is a bug or if I'm doing something 
> wrong.
> 
> I have an XML document with some UTF-8 encoded strings in it. The XML 
> document is labeled as being encoded in UTF-8. I want to print those 
> strings out using the x:out tag in a UTF-8 encoded JSP. The problem 
> seems to be that strings which come out of x:out are always labeled as 
> being ISO-8859-1 encoded. This causes the JspWriter to perform an 
> unnecessary ISO-8859-1 to UTF-8 conversion on the string. The resulting 
> page is UTF-8 but the strings are incorrect due to the conversion. (At 
> least thats what I think is going on.)
> 
> I've discovered a workaround to this problem. I create a new UTF-8 
> string based on the getBytes() of the string that comes out of x:out. 
> These strings show up correctly.
> 
> I'm using Tomcat 5.5 and Standard-1.1 taglibs. Any thoughts? I'd rather 
> not have to use the workaround.
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
> 
> <% response.setContentType("text/html; charset=UTF-8"); %>
> 
> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>    "http://www.w3.org/TR/html4/loose.dtd">
> 
> <%@ taglib prefix="c"   uri="http://java.sun.com/jstl/core" %>
> <%@ taglib prefix="x"   uri="http://java.sun.com/jstl/xml" %>
> <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
> 
> <html>
> <body>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
> </head>
> 
> <c:if test="${empty applicationScope.reportList}">
> <x:parse var="reportList" scope="application">
>    <c:import url="/reports.xml" />
> </x:parse>
> </c:if>
> 
> <%-- <h2>Reports</h2> --%>
> 
> <x:forEach var="reportset" select="$reportList/reports/*">
>         <c:set var="tempString" scope="page"><x:out select="$reportset/@name"/></c:set>
>         <h3><% out.print(new String(pageContext.getAttribute("tempString").toString().getBytes(),
"UTF-8")); %></h3>
> 	<%-- <h3><x:out select="$reportset/@name"/></h3> --%>
> 	<x:forEach var="reportSubSet" select="$reportset/*">
>                 <c:set var="tempString" scope="page"><x:out select="$reportSubSet/@name"/></c:set>
>                 <h4><% out.print(new String(pageContext.getAttribute("tempString").toString().getBytes(),
"UTF-8")); %></h4>
> 		<%-- <h4><x:out select="$reportSubSet/@name"/></h4> --%>
> 		<ul>
> 		<x:forEach var="report" select="$reportSubSet/*">
> 		        <c:set var="id"><x:out select="$report/@id"/></c:set>
> 			<c:url var="htmlurl" value="reportViewer">
> 				<c:param name="report" value="${id}"/>
> 				<c:param name="format" value="html"/>
> 			</c:url>
> 			<c:url var="pdfurl" value="reportViewer">
> 				<c:param name="report" value="${id}"/>
> 				<c:param name="format" value="pdf"/>
> 			</c:url>
> 			<c:url var="csvurl" value="reportViewer">
> 				<c:param name="report" value="${id}"/>
> 				<c:param name="format" value="csv"/>
> 			</c:url>
> 			<c:url var="xlsurl" value="reportViewer">
> 				<c:param name="report" value="${id}"/>
> 				<c:param name="format" value="xls"/>
> 			</c:url>		
> 					
> 			<li><a href='<c:out value="${htmlurl}"/>'>
> 			<%-- <x:out select="$report/title"/> --%>
> 			<c:set var="tempString" scope="page"><x:out select="$report/title"/></c:set>
> 			<% out.print(new String(pageContext.getAttribute("tempString").toString().getBytes(),
"UTF-8")); %>
> 			</a>
> 			&nbsp
> 			<font size="2pt">
> 			<a href='<c:out value="${pdfurl}"/>'/>pdf</a>
> 			&nbsp
> 			<a href='<c:out value="${csvurl}"/>'/>csv</a>
> 			&nbsp
> 			<a href='<c:out value="${xlsurl}"/>'/>excel</a>
> 			</font>	
> 			</li>
> 		</x:forEach>
> 		</ul>
> 	</x:forEach>
> </x:forEach>
> 
> </body>
> </html>
> 
> 
> ------------------------------------------------------------------------
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <reports name="Évaluation et surveillance">
>   <reportSet name="PEPFAR">
>     <reportSubSet name="Rapports de population totale">
>       <report id="505">
> 	<title>Rapport mensuel Pepfar par établissement</title>
> 	<reportFile></reportFile>
>       </report>
>     </reportSubSet>
>     <reportSubSet name="Statistiques de cohorte totale">
>       <report id="500">
> 	<title>Nombre de patients par établissement</title>
> 	<reportFile>TotalCohortPatientCount.jasper</reportFile>
>       </report>
>       <report id="501">
> 	<title>Facteurs de risque CDC</title>
> 	<reportFile>RiskFactors.jasper</reportFile>
>       </report>
>       <report id="502">
> 	<title>Patients par groupe d'âge</title>
> 	<reportFile>AgeGroups.jasper</reportFile>
>       </report>
>       <report id="503">
> 	<title>ARV par mois</title>
> 	<reportFile>ArvByMonth.jasper</reportFile>
>       </report>
>       <report id="504">
> 	<title>Comptes de régime par mois</title>
> 	<reportFile>RegimenByMonth.jasper</reportFile>
>       </report>
>     </reportSubSet>
>     <reportSubSet name="Distribution de cohorte par étabilssement - Tous les patients">
>       <report id="100">
> 	<title>Nombre par sexe</title>
> 	<reportFile>CohortSex.jasper</reportFile>
>       </report>
>       <report id="102">
> 	<title>Age à la première visite</title>
> 	<reportFile>AgeFirstVisit.jasper</reportFile>
>       </report>
>       <report id="103">
> 	<title>Facteurs de risque CDC</title>
> 	<reportFile>CohortRiskFactors.jasper</reportFile>
>       </report>
>       <report id="104">
> 	<title>Diagnostics</title>
> 	<reportFile>CohortDiagnosis.jasper</reportFile>
>       </report>
>       <report id="105">
> 	<title>Résultats d''analyse de laboratoire</title>
> 	<reportFile>CohortLabResult.jasper</reportFile>
>       </report>
>       <report id="106">
> 	<title>Medicaments</title>
> 	<reportFile>CohortMedication.jasper</reportFile>
>       </report>
>       <report id="107">
> 	<title>Décès par année</title>
> 	<reportFile>DeathsByYear.jasper</reportFile>
>       </report>
>       <report id="108">
> 	<title>Visites par mois</title>
> 	<reportFile>VisitsByMonth.jasper</reportFile>
>       </report>
>       <report id="109">
> 	<title>Nombre de fiches saisies la semaine dernière</title>
> 	<reportFile>FormsLastWeek.jasper</reportFile>
>       </report>
>       <report id="110">
> 	<title>Nombre de fiches saisies la mois dernière</title>
> 	<reportFile>FormsLastMonth.jasper</reportFile>
>       </report>
>       <report id="111">
> 	<title>ARV par mois</title>
> 	<reportFile>CohortArvByMonth.jasper</reportFile>
>       </report>
>       <report id="112">
> 	<title>Comptes de régime par mois</title>
> 	<reportFile>CohortRegimenbyMonth.jasper</reportFile>
>       </report>
>     </reportSubSet>			
>   </reportSet>
>   <reportSet name="Rapports de cas particulier">
>     <reportSubSet name="Rapports de cas particulier">
>       <report id="200">
> 	<title>NASTAD Individual Case Report</title>
> 	<reportFile></reportFile>
>       </report>
>     </reportSubSet>
>   </reportSet>
>   <reportSet name="Data Quality Reports">
>     <reportSubSet name="Critères d''enrollement">
>       <report id="301">
> 	<title>Patients n'ayant pas eu 2 visites durant 12 mois</title>
> 	<reportFile>PatientsWithoutTwoVisits.jasper</reportFile>
>       </report>
>       <report id="302">
> 	<title>Patients sans désignation de sexe</title>
> 	<reportFile>PatientsNoSex.jasper</reportFile>
>       </report>
>       <report id="303">
> 	<title>Patients sans année de naissance</title>
> 	<reportFile>PatientsWithoutBirthYear.jasper</reportFile>	
>       </report>
>       <report id="304">
> 	<title>Activité post mortem</title>
> 	<reportFile>PostMortemActivity.jasper</reportFile>
>       </report>							
>     </reportSubSet>
>     <reportSubSet name="Autres rapports">
>       <report id="305">
> 	<title>Date de visite ultérieure à la date d'entrée des données</title>
> 	<reportFile>VisitDateAfterToday.jasper</reportFile>
>       </report>
>       <report id="306">
> 	<title>Fiche exigeant la revue de qualitè de donnèes</title>
> 	<reportFile>QualityReview.jasper</reportFile>
>       </report>
>       <report id="307">
> 	<title>Nombre de saisies essentielles incomplètes</title>
> 	<reportFile>IncompleteForms.jasper</reportFile>
>       </report>
>       <report id="308">
> 	<title>Mauvaise Date De Visite</title>
> 	<reportFile>BadVisitDate.jasper</reportFile>
>       </report>
>     </reportSubSet>
>   </reportSet>
>   <reportSet name="Rapports de soins cliniques">
>     <reportSubSet name="Rapports de soins cliniques">
>       <report id="601">
> 	<title>Patients sans numération CD4</title>
> 	<reportFile>NoCD4.jasper</reportFile>
>       </report>
>       <report id="602">
> 	<title>Patients sans numération CD4 depuis plus de 6 mois</title>
> 	<reportFile>OldCD4.jasper</reportFile>
>       </report>
>       <report id="603">
> 	<title>Patients ayant manqué 3 rendez-vous ces 3 derniers mois</title>
> 	<reportFile>MissedThreeVisits.jasper</reportFile>	
>       </report>
>       <report id="604">
> 	<title>Patients sans résultat RPR</title>
> 	<reportFile>NoRPR.jasper</reportFile>
>       </report>				
>       <report id="605">
> 	<title>Patients sous traitement ARV depuis 1 mois et sans suivi SGOT/SGPT</title>
> 	<reportFile>NoSGOT.jasper</reportFile>
>       </report>
>       <report id="606">
> 	<title>Patients sous traitement ARV depuis 1 mois et sans suivi du taux de créatinine</title>
> 	<reportFile>NoCreatinine.jasper</reportFile>
>       </report>
>       <report id="607">
> 	<title>Patients sous traitement ARV depuis 1 mois et sans suivi de Hg</title>
> 	<reportFile>NoHg.jasper</reportFile>
>       </report>
>       <report id="608">
> 	<title>Patients sans résultat de radiographie thoracique</title>
> 	<reportFile>NoXray.jasper</reportFile>
>       </report>
>       <report id="609">
> 	<title>Patients sans résultat de crachat</title>
> 	<reportFile>NoSputum.jasper</reportFile>
>       </report>
>       <report id="610">
> 	<title>Patients sans résultat PPD</title>
> 	<reportFile>NoPPD.jasper</reportFile>
>       </report>
>       <report id="611">
> 	<title>Patients éligibles pour traitement ARV mais non inscrit</title>
> 	<reportFile>NotEnrolled.jasper</reportFile>
>       </report>
>       <report id="612">
> 	<title>Patients avec CD4 &lt; 200 n'étant pas sous Cotrimox</title>
> 	<reportFile>NotOnCotrimox.jasper</reportFile>
>       </report>
>     </reportSubSet>
>   </reportSet>
> </reports>

-- 
Kris Schneider <mailto:kris@dotech.com>
D.O.Tech       <http://www.dotech.com/>

---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: taglibs-user-help@jakarta.apache.org


Mime
View raw message