Stefan Krah <stefan-use...@bytereef.org> added the comment: Yes, it's a problem in _localemodule.c. This situation always occurs when LC_NUMERIC is something like ISO8859-15, LC_CTYPE is UTF-8 AND the decimal point or separator are in the range 128-255. Then mbstowcs tries to decode the character according to LC_CTYPE and finds that the character is not valid UTF-8:
static PyObject*mbstowcs str2uni(const char* s) { #ifdef HAVE_BROKEN_MBSTOWCS size_t needed = strlen(s); #else size_t needed = mbstowcs(NULL, s, 0); #endif I can't see a portable way to fix this except: block threads set temporary LC_CTYPE call mbstowcs restore LC_CTYPE unblock threads I don't think this issue is important enough to do that. What I do in cdecimal is raise an error "Invalid separator or unsupported combination of LC_NUMERIC and LC_CTYPE". ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue7442> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com