--- com/jclark/xsl/sax/HTMLOutputHandler.java.org Sat Oct 23 18:19:50 1999 +++ com/jclark/xsl/sax/HTMLOutputHandler.java Tue Feb 22 18:16:25 2000 @@ -101,8 +101,23 @@ write(" "); break; default: - if (c <= maxRepresentableChar) + if (c <= '\u007F') write(c); + else if (c <= maxRepresentableChar) { + char[] cs = { c }; + String s = new String(cs); + try { + byte[] bs = s.getBytes(EncodingName.toJava(encoding)); + if (bs.length == 1 && bs[0] == '?') + write(getCharString(c)); + else + write(c); + } + catch (java.io.UnsupportedEncodingException e) { + e.printStackTrace(); + throw new RuntimeException(); + } + } else write(getCharString(c)); break; @@ -214,8 +229,23 @@ write(" "); break; default: - if (c <= maxRepresentableChar) + if (c <= '\u007F') write(c); + else if (c <= maxRepresentableChar) { + char[] cs = { c }; + String s = new String(cs); + try { + byte[] bs = s.getBytes(EncodingName.toJava(encoding)); + if (bs.length == 1 && bs[0] == '?') + write(getCharString(c)); + else + write(c); + } + catch (java.io.UnsupportedEncodingException e) { + e.printStackTrace(); + throw new RuntimeException(); + } + } else write(getCharString(c)); break;