Martijn van Oosterhout <kleptog@xxxxxxxxx> writes: > Characters havn't fitted in an unsigned char in a very long time. It's > obviously bogus for any multibyte encoding (the code even says so). For > such encodings you could use the system's towupper() (ANSI C/Unix98) > which will work on any unicode char. http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/oracle_compat.c?rev=1.67 * If the system provides the needed functions for wide-character manipulation * (which are all standardized by C99), then we implement upper/lower/initcap * using wide-character functions. Otherwise we use the traditional <ctype.h> * functions, which of course will not work as desired in multibyte character * sets. Note that in either case we are effectively assuming that the * database character encoding matches the encoding implied by LC_CTYPE. regards, tom lane