SAX/C++: UTF-8 v UTF-16

Michael Fuller msf at
Mon Dec 6 07:19:04 GMT 1999

James Clark wrote:
> David Megginson wrote:
> > 4. Hold my nose and use UTF-8 rather than UTF-16, for compatibility
> >    with most existing C++ code.
> I would say there was at least as much C++ code using UTF-16 as using UTF-8.
> There are a couple of possible solutions:
> 1. A lo-tech solution.  Provide a SAXChar typedef [...]
> 2. A hi-tech solution.  [use templates]

3. Use a similar solution to the Java spec: provide both a ByteStream
   and a CharacterStream in InputSource, which has two benefits.

One, it is consistent with the Java interface, which can't be a *bad* thing.

Two, it frees us to define the CharacterStream explicitly as a conduit
for UTF-16 encoded data, whilst allowing parsers/applications the freedom
to use the ByteStream for data that is encoded in whatever format desired.

The encoding can either be auto-detected, or can be explicitly identified
using the InputSource setEncoding()/getEncoding() member function.

This means going back to the two streams and the getEncoding()/setEncoding()
methods of the original Java spec.

This really seems like a Good Thing; I liked the look of it in the
Java interface; why not use it here also?

> If you feel that one needs to be mandated, I would pick UTF-16.


Multimedia Databases Group, RMIT, Australia.

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as: and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo at the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list