To, co mówi tytuł.Jak sprawdzić, czy Python jest skompilowany z UCS-2 lub UCS-4?
$ ./configure --help | grep -i ucs
--enable-unicode[=ucs[24]]
Przeszukiwanie oficjalnej dokumentacji, znalazłem to:
sys.maxunicode: Liczba całkowita podając największej obsługiwanej punkt kod dla znak Unicode. Wartość o wartości tego zależy od opcji konfiguracyjnej , która określa, czy znaki Unicode są przechowywane jako UCS-2 lub UCS-4.
To, co nie jest tu jasne, to - jakie wartości odpowiadają UCS-2 i UCS-4.
Kod powinien działać na Pythonie 2.6+.
Nie jest to już powszechnie poprawne w przypadku Pythona 3. Zobacz https://docs.python.org/3.4/c-api/unicode.html: 'Od czasu wdrożenia PEP 393 w Pythonie 3.3, obiekty Unicode używają wewnętrznie różnorodność przedstawień ". https://www.python.org/dev/peps/pep-0393/ –
@ Jan-PhilipGehrcke: 'deficient_unicode_build = (sys.maxunicode <0x10ffff)' działa na dowolnej wersji Pythona (nawet jeśli elastyczna wewnętrzna reprezentacja jest używana gdzie 'sys.maxunicode == 0x10ffff'). Elastyczne reprezentacje umożliwiają uzyskanie poprawnych wyników, takich jak ucs4 w poprzednich wersjach, w niektórych przypadkach z mniejszą ilością pamięci niż ucs4. – jfs