> pf@pefunbk> python > Python 1.5.2 (#1, Jul 23 1999, 06:38:16) [GCC egcs-2.91.66 19990314/Linux (egcs- on linux2 > Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam > >>> import string > >>> print string.upper("ä") > Ä > >>> This threw me off too. However try this: python -c 'print "ä".upper()' It will print "ä". A mystery? No, the GNU readline library calls setlocale(). It is wrong, but I can't help it. But it only affects interactive use of Python. > In recent Linux distributions almost every Linux C-program seems to > contain this obligatory 'setlocale(LC_ALL, "");' line, so it's easy > to forget about it. However the core Python interpreter does not. > it seems the Linux C-Library is not fully ANSI compliant in this case. > It seems to honour the setting of $LANG regardless whether a program > calls 'setlocale' or not. No, the explanation is in GNU readline. Compile this little program and see for yourself: #include <ctype.h> #include <stdio.h> main() { printf("toupper(%c) = %c\n", 'ä', toupper('ä')); } --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4