Я лично только использую его для присвоения переменной (в Java), например:
String var = (obj == null) ? "not set" : obj.toString();
и (другой пример) при использовании функции, которая не позволяет пустой параметр, такой как:
String val; [...]
int var = (val == null) ? 0 : Integer.parseInt(val);
При сборке с --enable-unicode = ucs4:
>>> import sys
>>> print sys.maxunicode
1114111
При сборке с --enable-unicode = ucs2:
>>> import sys
>>> print sys.maxunicode
65535
Однажды у меня была такая же проблема. Я задокументировал это для себя в своей вики по адресу
http://arcoleo.org/dsawiki/Wiki.jsp?page=Python%20UTF%20-%20UCS2%20or%20UCS4
Я написал -
import sys
sys.maxunicode > 65536 and 'UCS4' or 'UCS2'
Это 0xFFFF (или 65535) для UCS-2 и 0x10FFFF (или 1114111) для UCS-4:
Py_UNICODE
PyUnicode_GetMax(void)
{
#ifdef Py_UNICODE_WIDE
return 0x10FFFF;
#else
/* This is actually an illegal character, so it should
not be passed to unichr. */
return 0xFFFF;
#endif
}
Максимальный символ в режиме UCS-4 определяется максимальным представляемым значением в UTF-16.