Sorry, no. They broke strings entirely in Python 3.0 and that is why people cannot port to them.
Here is how to do strings correctly: use UTF-8 and DO NOT BARF ON ENCODING ERRORS!
It is absolutely 100% a requirement that a program be able to read a random byte stream into a "string", then write it out again, and get the same byte stream.
In Python 2.0 this only barfed if you tried to convert that string to "Unicode" (it would have been nice if it did not barf, but at least you could store, read, and write strings).
In Python 3.0 it will BARF ON READ. This makes it impossible to write reliable software.
Yes you can use "bytes" in Python 3.0. But that really sucks if in fact you expect your bytes to be readable text, with only RARE (but not magically non-existent) errors.