views:

420

answers:

1

When i try to display a chinese character inside a chart element(chart name) in jasper reports it doesn't display, i use i18n to take the value from properties file, it reads the keys but fails to display the chinese character. It doesn't display any character except English.

this is my jrxml:

<parameter name="orgId" isForPrompting="true" class="java.lang.String"/>
<parameter name="time" isForPrompting="true" class="java.lang.String"/>
<parameter name="chartName" isForPrompting="true" class="java.lang.String"/>
<parameter name="url" isForPrompting="true" class="java.lang.String"/>
<parameter name="wwidth" isForPrompting="true" class="java.lang.String"/>
<parameter name="wheight" isForPrompting="true" class="java.lang.String"/>
<parameter name="sql" isForPrompting="true" class="java.lang.String"/>
<queryString><![CDATA[$P!{sql}]]></queryString>

<field name="ROWNUM" class="java.math.BigDecimal"/>
<field name="CCOUNT" class="java.math.BigDecimal"/>
<field name="CONTROL_ID" class="java.math.BigDecimal"/>
<field name="CONTROL_CODE" class="java.lang.String"/>
<field name="CONTROL_NAME" class="java.lang.String"/>

 <background>
  <band height="0"  isSplitAllowed="true" >
  </band>
 </background>
 <title>
  <band height="20"  isSplitAllowed="true" >
   <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >
    <reportElement
     x="0"
     y="0"
     width="403"
     height="19"
     key="textField-1"/>
    <box leftPadding="5"></box>
    <textElement>
     <font fontName="Trebuchet MS" pdfFontName="Helvetica-Bold" isBold="true"/>
    </textElement>
   <textFieldExpression   class="java.lang.String"><![CDATA[( ($P{time}!=null && !$P{time}.equals("")) ? str($P{chartName}) : "" )]]></textFieldExpression>
   </textField>
  </band>
 </title>
 <pageHeader>
  <band height="0"  isSplitAllowed="true" >
  </band>
 </pageHeader>
 <columnHeader>
  <band height="0"  isSplitAllowed="true" >
  </band>
 </columnHeader>
 <detail>
  <band height="0"  isSplitAllowed="true" >
  </band>
 </detail>
 <columnFooter>
  <band height="0"  isSplitAllowed="true" >
  </band>
 </columnFooter>
 <pageFooter>
  <band height="0"  isSplitAllowed="true" >
  </band>
 </pageFooter>
 <summary>
  <band height="222"  isSplitAllowed="true" >
   <bar3DChart>
    <chart  hyperlinkTarget="Self" >
    <reportElement
     x="0"
     y="0"
     width="403"
     height="222"
     key="element-1"/>
    <box></box>
     <chartTitle color="#000000" >
    <font fontName="Trebuchet MS" pdfFontName="Helvetica" size="11" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" isPdfEmbedded="false" pdfEncoding="Cp1252"/>
       <titleExpression><![CDATA[str("chartName")]]></titleExpression>
    </chartTitle>
     <chartLegend textColor="#000000" backgroundColor="#FFFFFF" >
    </chartLegend>
    </chart>
    <categoryDataset>
     <dataset >
     </dataset>
     <categorySeries>
      <seriesExpression><![CDATA[$F{CONTROL_CODE}]]></seriesExpression>
      <categoryExpression><![CDATA[$F{CONTROL_NAME}]]></categoryExpression>
      <valueExpression><![CDATA[$F{CCOUNT}]]></valueExpression>
   <itemHyperlink   hyperlinkType="Reference">
     <hyperlinkReferenceExpression><![CDATA["javascript:void(0);window.open('"+$P{url}+"&fileName=topControlsDrilldown&conName="+$F{CONTROL_NAME}+"&conId="+$F{CONTROL_ID}+"','TopControls','width="+$P{wwidth}+",height="+$P{wheight}+",top=300,left=250,menubar=0');location.reload()"]]></hyperlinkReferenceExpression>
     <hyperlinkTooltipExpression><![CDATA[""+$F{CCOUNT}]]></hyperlinkTooltipExpression>
   </itemHyperlink>
     </categorySeries>
    </categoryDataset>
    <bar3DPlot isShowLabels="true" >
     <plot orientation="Horizontal" foregroundAlpha="0.7" >
      <seriesColor seriesOrder="0" color="#615A4A"/>
      <seriesColor seriesOrder="1" color="#88A3BF"/>
      <seriesColor seriesOrder="2" color="#B47272"/>
      <seriesColor seriesOrder="3" color="#E8A4EA"/>
      <seriesColor seriesOrder="4" color="#FFC189"/>
      <seriesColor seriesOrder="5" color="#FFEF79"/>
      <seriesColor seriesOrder="6" color="#AFFAFF"/>
      <seriesColor seriesOrder="7" color="#F7A7AB"/>
      <seriesColor seriesOrder="8" color="#A7A1FF"/>
      <seriesColor seriesOrder="9" color="#E7CEAD"/>

A: 

In the Properties dialog of the textfield, you should set a proper PDF-Encoding. You are using CP1252 which is ok for Latin characters but not Chinese.

medopal
To improve your answer: what *is* a proper encoding that would support Chinese? (UTF-8 maybe?)
jtbandes
thats exactly why i didnt specify :), i thought UTF-8 would be good, but i tried it for Arabic characters and didnt work properly, so i switched to CP1256. UTF-8 might be good for Chinese, not sure.
medopal