<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META content="MSHTML 6.00.2716.2200" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Current XMLOutputter class (Version 8) doesn't 
support Unicode characters with hashcode above 128.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><FONT face="Times New Roman" size=3><FONT 
face=Arial size=2>I was trying to save this character \u8220 to xml using 
XMLOutputter and as the result I had in file one byte (93hex) instead of two 
bytes, and then I couldn't parse this file using SAXBuilder as well as I 
couldn't open this file in Internet Explorer.</FONT></FONT></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I was reading different algorithms that converts 
Unicode to&nbsp;XML, HTML and I think this one is the best </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV>
<HR>
</DIV>
<DIV><FONT face=Arial size=2><A 
href="http://czyborra.com/utf/#UTF-8">http://czyborra.com/utf/#UTF-8</A></FONT></DIV>
<DIV>
<H2><A name=HTML>HTML's Numerical Character References</A></H2>A somewhat more 
standardized encoding option is specified by HTML. <A 
href="ftp://ftp.isi.edu/in-notes/rfc2070.txt">RFC 2070</A> allows us to 
reference just any Unicode character within any HTML document of any charset by 
using the decimal numeric character reference &amp;#12345; as in: 
<P><PRE>putwchar(c)
{
  if (c &lt; 0x80 &amp;&amp; c != '&amp;' &amp;&amp; c != '&lt;') putchar(c);
  else printf ("&amp;#%d;", c);
}
</PRE>
<P>Decimal numbers for Unicode characters are also used in Windows NT's 
Alt-12345 input method but are still of so little mnemonic value that a 
hexadecimal alternative &amp;#x1bc; is being supported by the newer standards <A 
href="http://www.w3.org/TR/REC-html40/charset.html">HTML 4.0</A> and <A 
href="http://www.w3.org/XML/">XML 1.0</A>. Apart from that, hexadecimal numbers 
aren't that easy to memorize either. SGML has long allowed <A 
href="http://czyborra.com/yudit/SGML.kmap">symbolic character entities</A> for 
some character references like &amp;eacute; for é and &amp;euro; for the € but 
the table of supported entities differs from browser to browser. </P>
<P>
<HR>
</P>
<P><FONT face=Arial size=2>I wrote this method for the conversion</FONT></P>
<P><FONT face=Arial size=2>This class converts this 3 characters 
(&amp;,&lt;,&gt;) to SGML Entities as well as all characters above 128 using 
this format &amp;#1234; Now it works with any parsers suporting XML 
1.0</FONT></P>
<P><FONT face=Arial size=2><EM>/**<BR>&nbsp;* Converts Unicode Character to HTML 
Decimal Entity.<BR>&nbsp;* All Characters with hashcode less than 128(decimal) 
apart from<BR>&nbsp;* '&gt;','&lt;' and '&amp;' are the same.. The rest is 
converted to decimal entity &amp;#{char_hashcode};<BR>&nbsp;* Supported formats 
examples:<BR>&nbsp;* &lt;br&gt; /u003F&nbsp; --&gt; &amp;#63;<BR>&nbsp;* @param 
value Unicode Character<BR>&nbsp;* @return Converted HTML Character or 
Entity.<BR>&nbsp;*/<BR>&nbsp; public String convertTEXTtoHTML(char 
value)<BR>&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp; String temp = 
null;<BR>&nbsp;&nbsp;&nbsp;&nbsp; char b[] = new 
char[1];<BR>&nbsp;&nbsp;&nbsp;&nbsp; int bint = new 
Character(value).hashCode();<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
if((bint&lt;128)&amp;&amp;(bint!="&amp;".hashCode())&amp;&amp;(bint!="&lt;".hashCode())&amp;&amp;(bint!="&gt;".hashCode()))<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
{<BR>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; b[0] = 
value;<BR>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; temp = new 
String(b);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; temp = 
null;<BR>&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; temp = "&amp;#"+ bint 
+";";<BR>&nbsp;&nbsp;&nbsp;&nbsp; return temp;<BR>&nbsp; }</EM></FONT></P>
<P><FONT face=Arial size=2>and I changed 
<STRONG>XMLOutputter.escapeElementEntities(String str)</STRONG> method 
</FONT></P>
<P><FONT face=Arial size=2><EM>&nbsp;&nbsp; default 
:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entity = 
convertTEXTtoHTML(ch);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</EM></FONT></P>
<P><FONT face=Arial size=2>Maybe there is a different solution for this problem, 
but It works fine.</FONT></P>
<P><FONT face=Arial size=2>Mad Einstein</FONT></P></DIV></BODY></HTML>