Выбор диапазонов символов в Юникоде - PullRequest
0 голосов
/ 23 февраля 2019

Скажем, я хочу проанализировать строку и удалить любые символы выше определенного диапазона, например, если я хочу удалить все смайлики в строке.Примером того, где это сделано, является печать текста в IDLE на python, где диапазон BMP не покрывает эмодзи и выдает ошибку, если вы попробуете это.Распространенное решение этой ошибки в Интернете:

"".join((i if ord(i) < 10000 else '\ufffd' for i in s))

Где 10000 - это ограничение на количество символов, и все символы, превышающие этот предел, заменятся на заменяющие символы в Unicode �.

Почему 10000? Другое онлайн-решение с этим точным кодом использует 65000

Как мне выбрать желаемый лимит символов?В моей конкретной ситуации для Python 3?

Я полагаю, что вы основали бы его на какой-то документации на Python, в которой говорится о пределе BMP, но я не могу его найти, так каков реалистичный предел, который будет включать все важные символы?такие, как цифры и буквы, такие, что, например, предложение, включающее символы вне диапазона, все еще будет понятно?

Спасибо, извините за плохой английский, я не могу объяснить свои проблемы очень хорошо

...