Read the first unit from a po file without decoding the characters;
commit597baa902cfad0288fb6beb3bfe3de86629fe6a0
authorwinterstream <winterstream@54714841-351b-0410-a198-e36a94b762f5>
Mon, 9 Jun 2008 12:25:01 +0000 (9 12:25 +0000)
committerwinterstream <winterstream@54714841-351b-0410-a198-e36a94b762f5>
Mon, 9 Jun 2008 12:25:01 +0000 (9 12:25 +0000)
tree7edc644773bfaebfe965899a68b9c2273beb521c
parent93c4ed0f21cf6f5c3935a47ffb789e543c8de9ad
Read the first unit from a po file without decoding the characters;
that is, everything is read into a Python str type. Then check to
see if there is a header; if there is, then try to determine the
file encoding from that and set the file encoding. Otherwise, leave
the file encoding at the default (UTF-8).

Then, decode the file contents and restart the parsing.

Originally, the parser would assume a UTF-8 encoding until it hit
a Content-Type declaration which specified the file encoding. Only
then would it change the decoding scheme.

This worked fine for non-UTF-8 files which contained only ASCII
characters in the header (which appeared before the Content-Type
declaration), but raised an exception if any non-ASCII characters
appeared there, since a UTF decoding error occured.

This patch both simplifies the original code and fixed this bug.

git-svn-id: http://translate.svn.sourceforge.net/svnroot/translate/src/trunk/translate@7519 54714841-351b-0410-a198-e36a94b762f5
storage/pypo.py