Non-English characters appears as ???? in BI Publisher PDF output
By Ashish Shrivastava on Jul 31, 2010
Japanese characters appears ???? on PDF output or Report display ????? as description for Arabic characters, these are some of the frequently asked questions or issues.
When non-English characters appears as ???? in PDF output generated by BI Publisher, the issue could be either FO Processor could not find the required fonts or XML data does not have proper encoding.
Lets discuss the first case first.
Oracle ships the Albany fonts along with products to support non-English languages. When we install the BI Publisher, the fonts are installed in $JAVA_HOME/jre/lib/fonts directory. You can confirm this by listing the A*.ttf files. For Oracle E-Business Suite, these fonts are available in $FND_TOP/resource and from here, it can copied to respective node.
If you see ???? in PDF output, open the PDF document in Acrobat, right click and select Document Properties and go to font tab. Make sure it shows the "Albany*" for the fonts used in document. If you see the fonts as "Albany*", your fonts are installed correctly and you should investigate for encoding issue, if not, FO Processor could not find the required fonts.
In case of BIP Enterprise release, just check out for the Albany with the software bundle and copy it to current $JAVA_HOME/jre/lib/fonts directory.
For Oracle E-Business Suite, it is little tricky. You have to find out your exact JAVA_HOME. Check whether you are running your report within UI, OA framework page, BIP Common Region or it is submitted through Concurrent Manager.
In first case, where BIP report is embedded or submitting within OAF UI, fonts should be under $OA_JRE_TOP/jre/lib/fonts. Reports submitted from Concurrent Manager, access the fonts from $AF_JRE_TOP/lib/fonts directory.
Run the System Administrator request "Generate concurrent processing environment information" and get the OA_JRE_TOP and AF_JRE_TOP details and copy the A*.ttf files from $FND_TOP/resources to respective fonts directory. This should resolve the any missing fonts issue in EBS.
It is not necessary that your fonts should be in $JAVA_HOME/jre/lib/fonts directory, It could be any other directory as well, but in that case your have to map your font directory from Administrator UI using XML Publisher Administrator responsibility
For Standalone/Enterprise release, the same can be set through Admin > Font Mappings UI.
Please refer this link from BI Publisher User guide for further details on Font mappings.
Now on the second reason for ???? issue.....
When the XML Data does not have proper encoding, The xml itself not readable. Fonts appear incorrectly in XML itself. If we open XML data file in any of the browser, either it errors out as invalid xml or it does not show the fonts correctly. You will not see this issue, when you generate the data through BI Publisher Data Template, because, it always generate the xml data in UTF-8 encoding and set the correct encoding.
XML generated through old version of Oracle Report or any customize PL/SQL logic, most of the time, it does not set the encoding in XML header or it just hard coded as UTF-8 irrespective of the actual data encoding, which could be different from UTF-8.
When FO Processor could not recognize the character properly against the supplied encoding, it replace the character as ?, instead of earring out the report. To resolve this issue, review your XML and XML generation process and set the correct e ncoding in XML header, verify the XML by opening it in browser and make sure you can read the data properly.
I would recommendation to use the Data Template to generate XML. I do not see any scenario, where you can't use Data Template to generate your XML Data.
Please feel free to ask any question on this topic. I will be glad to answer your queries.