The case construct in _write that decides what to do
depending on the type of the object fails if:
ty is types.UnicodeType
A solution is to add another clause:
elif ty is types.UnicodeType:
The body of the new clause is identical to that for type.
String. Not sure yet if anything else needs to be done
which is why I didn't combine them. This probably
converts the Unicode string to the default code page so it
might not be perfectly reversible. It works on my
machine (Python 2.4, WinXP SP1) and reads back
correctly (or at least good enough for my purposes).