Как узнать, компилируется ли Python с UCS-2 или UCS-4?

Я лично только использую его для присвоения переменной (в Java), например:

String var = (obj == null) ? "not set" : obj.toString();

и (другой пример) при использовании функции, которая не позволяет пустой параметр, такой как:

String val; [...]
int var = (val == null) ? 0 : Integer.parseInt(val);
62
задан Reinstate Monica 26 May 2011 в 16:53
поделиться

4 ответа

При сборке с --enable-unicode = ucs4:

>>> import sys
>>> print sys.maxunicode
1114111

При сборке с --enable-unicode = ucs2:

>>> import sys
>>> print sys.maxunicode
65535
121
ответ дан 24 November 2019 в 16:37
поделиться

Однажды у меня была такая же проблема. Я задокументировал это для себя в своей вики по адресу

http://arcoleo.org/dsawiki/Wiki.jsp?page=Python%20UTF%20-%20UCS2%20or%20UCS4

Я написал -

import sys
sys.maxunicode > 65536 and 'UCS4' or 'UCS2'
11
ответ дан 24 November 2019 в 16:37
поделиться

Это 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.

19
ответ дан 24 November 2019 в 16:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: