[Python-3000] test__locale failing on Red Hat 7.3 system for et_EE locale

Guido van Rossum guido at python.org
Thu Sep 6 07:06:06 CEST 2007


test__locale (that's two underscores, testing _locale.c) fails on my
Red Hat 7.3 box. Further investigation shows that it's because the
et_EE locale (Estonia(n)) defines the thousands separator as '\xa0'
(no-break space U+00A0). Both localeconv() and nl_langinfo() use
PyUnicode_FromString() which assumes UTF-8, and hence the decoding
fails.

On my OSX box, the thousands separator in the et_EE locale is a
regular space.. On a Red Hat 9 box I have access to at work it is
'\xa0' as well (tested with Python2.4; I assume Python 3.0 would fail
there too). On my Ubuntu box that locale is unsupported.

I can "fix" it on that particular box by using latin-1 instead, but
that sounds wrong. There's an XXX comment in the code for
nl_langinfo() about possibly converting to wcs (wide character set?).

Any ideas? Removing et_EE from the list of interesting locales in
test__locale.py seems lame.

I did a quick web search and the first few hits are all about an
exchange whereby someone from Estonia asked Red Hat to change the
locale to use 8859-15 and the Red Hat guy point blank refused, saying
it was the Estonians own fault for having submitted incorrect locale
info a few years before. (But in 8859-15 \xa0 is the same no-break
space character as it is in Latin-1, so this may all be irrelevant.)

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-3000 mailing list