Replace remaining python-escape occurrences.

This commit is contained in:
Martin v. Löwis 2009-05-06 07:42:38 +00:00
parent 5dd402c72d
commit 8f3e8ce98e
1 changed files with 8 additions and 8 deletions

View File

@ -95,7 +95,7 @@ Discussion
While providing a uniform API to non-decodable bytes, this interface While providing a uniform API to non-decodable bytes, this interface
has the limitation that chosen representation only "works" if the data has the limitation that chosen representation only "works" if the data
get converted back to bytes with the python-escape error handler get converted back to bytes with the utf8b error handler
also. Encoding the data with the locale's encoding and the (default) also. Encoding the data with the locale's encoding and the (default)
strict error handler will raise an exception, encoding them with UTF-8 strict error handler will raise an exception, encoding them with UTF-8
will produce non-sensical data. will produce non-sensical data.
@ -115,25 +115,25 @@ likely pass the result strings back into APIs like os.stat() or
open(), which then encodes them back into their original byte open(), which then encodes them back into their original byte
representation. Applications that need to process the original byte representation. Applications that need to process the original byte
strings can obtain them by encoding the character strings with the strings can obtain them by encoding the character strings with the
file system encoding, passing "python-escape" as the error handler file system encoding, passing "utf8b" as the error handler name. For
name. For example, a function that works like os.listdir, except example, a function that works like os.listdir, except for accepting
for accepting and returning bytes, would be written as:: and returning bytes, would be written as::
def listdir_b(dirname): def listdir_b(dirname):
fse = sys.getfilesystemencoding() fse = sys.getfilesystemencoding()
dirname = dirname.decode(fse, "python-escape") dirname = dirname.decode(fse, "utf8b")
for fn in os.listdir(dirname): for fn in os.listdir(dirname):
# fn is now a str object # fn is now a str object
yield fn.encode(fse, "python-escape") yield fn.encode(fse, "utf8b")
The encode error handler interface presently requires replacement The encode error handler interface presently requires replacement
Unicode to be provide in lieu of the non-encodable Unicode from the Unicode to be provide in lieu of the non-encodable Unicode from the
source string. It promptly encodes that replacement Unicode. In some source string. It promptly encodes that replacement Unicode. In some
error handlers, such as the python-escape proposed here, it is simpler error handlers, such as the utf8 proposed here, it is simpler
and more efficient for the error handler to provide a pre-encoded and more efficient for the error handler to provide a pre-encoded
replacement byte string, rather than forcing it to calculating Unicode replacement byte string, rather than forcing it to calculating Unicode
from which the encoder would create the desired bytes. In fact, with from which the encoder would create the desired bytes. In fact, with
python-escape, there are required byte sequences which cannot be utf8b, there are required byte sequences which cannot be
generated from replacement Unicode. generated from replacement Unicode.
A few alternative approaches have been proposed: A few alternative approaches have been proposed: