strftime return value encoding (mbcs, locale, etc.)
rasky at develer.com
Sun Jan 27 21:15:55 CET 2008
I am trying to find a good way to portably get the output of strftime()
and put it onto a dialog (I'm using PyQt, but it doesn't really matter).
The problem is that I need to decode the byte stream returned by strftime
() into Unicode.
This old bug:
(last comment) mentions that it is "byte string in the locale's encoding".
The comment also suggests to use "mbcs" in Windows (which, AFAIK, it's
sort of an "alias" encoding for the current Windows codepage), and to
find out the exact encoding using locale.getpreferredencoding().
Thus, I was hoping that something like:
would work... but alas I was reported this exception:
LookupError: unknown encoding: cp932
So: what is the correct code to achieve this? Will something like this
data = strftime("%#c", localtime())
if os.name == "nt":
data = data.decode("mbcs")
data = dada.decode(locale.getpreferredencoding())
Is this the correct way of doing it? (Yes, it sucks).
Shouldn't Python automatically alias whatever is returned by
locale.getpreferredencoding() to "mbcs", so that my original code works
Thanks in advance!
More information about the Python-list