Как получить надежное количество символов Юникода в Python?

Google App Engine использует Python 2.5.2, очевидно, с включенным UCS4. Но хранилище данных GAE внутренне использует UTF-8. Итак, если вы сохраните u '\ ud834 \ udd0c' (длина 2) в хранилище данных, при его извлечении вы получите '\ U0001d10c' (длина 1). Я пытаюсь подсчитать количество символов Юникода в строке таким образом, чтобы получить тот же результат до и после его сохранения. Итак, я пытаюсь нормализовать строку (от u '\ ud834 \ udd0c' до '\ U0001d10c'), как только я ее получаю, прежде чем вычислять ее длину и помещать в хранилище данных. Я знаю, что могу просто закодировать его в UTF-8, а затем снова декодировать, но есть ли более простой / эффективный способ?

8
задан Travis 3 August 2011 в 06:26
поделиться