Streaming library
Rainer Deyke
rainerd at eldwood.com
Thu Oct 14 19:22:53 PDT 2010
On 10/14/2010 15:49, Andrei Alexandrescu wrote:
> Good point. Perhaps indeed it's best to only deal with bytes and
> characters at transport level.
Make that just bytes.
Characters data must be encoded into bytes before it is written and
decoded before it is read. The low-level OS functions only deal with
bytes, not characters.
Text encoding is a complicated process - consider different unicode
encodings, different non-unicode encodings, byte order markers, and
Windows versus Unix line endings. Furthermore, it is often useful to
wedge an additional translation layer between the low-level (binary)
stream and the high-level text encoding layer, such as an encryption or
compression layer.
Writing characters directly to streams made sense in the pre-Unicode
world where there was a one-to-one correspondence between characters and
bytes. In a modern world, text encoding is an important service that
deserves its own standalone module.
--
Rainer Deyke - rainerd at eldwood.com
More information about the Digitalmars-d
mailing list