Равенство эквивалентных строк Юникода
У меня есть вопрос о равенстве эквивалентных строк Unicode, и я дал немного кода на Python, но это может быть общий вопрос для всех языков программирования, таких как C, C ++, Perl или Java.
У меня есть строка u, которая отображает глиф, который является 05D1 (СТАВКА на ивритскую букву), включающий 05BC (чертёж еврейской точки) и 05B8 (каматс еврейской точки)
У меня есть другая строка v, которая также отображает тот же самый глиф, который является 05D1 (СТАВКА НА ИВРИТИЧЕСКУЮ БУКВУ), включающую 05B8 (КАМАТЫ ОРИГИНАЛЬНОГО ТОЧКА) и 05BC (ДАЙШЕВОЙ ТОЧКИ ИВРИТА)
Разница заключается в порядке включения или объединения «ТОЧКИ». Многие другие языки и буквы в Unicode могут включать или комбинировать с другими ТОЧКАМИ для создания глифа.
Теперь u и v практически и визуально представляют собой один и тот же глиф, но его нельзя сравнить наивно в Python:
>>> u='\u05D1\u05BC\u05B8' >>> v='\u05D1\u05B8\u05BC' >>> u 'בָּ' >>> v 'בָּ' >>> u==u True >>> v==v True >>> >>> u==v False >>> v==u False >>> u is v False >>>
Когда я создаю веб-страницу с этими глифами, просматриваю веб-страницу и выполняю поиск глифа, даже Mozilla FireFox рассматривает эти два как отличительные, но Google Chrome обрабатывает их как одинаковые. Очевидно, что Python и FireFox проверяют байтовое равенство, в то время как Chrome не проверяет байтовое равенство, но каким-то образом выясняет, что оба они одинаковы.
Каков алгоритм проверки равенства эквивалентных строк Unicode в Python?
0 ответов на вопрос
Похожие вопросы
-
6
Unicode, Unicode Big Endian или UTF-8? В чем разница? Какой формат лучше?
-
3
Vim: Как обрабатывать файлы Unicode с текстом на нескольких (более двух) языках?
-
4
Ubuntu Linux: можно ли вставлять обычный текст по умолчанию?
-
-
3
Как я могу создать оглавление для документа уценки с помощью Python / AWK / SED?
-
1
Чтобы установить расширения Markdown с помощью Python
-
8
Как вы вводите символы Юникода, используя шестнадцатеричные коды?
-
9
Является ли Python только для создания бэкэндов при создании сайтов?
-
4
Для запуска Python внутри HTML-файла аналогично PHP
-
3
Как сделать символы Unicode видимыми в Emacs?
-
2
Получить Dingbats, чтобы появиться в Firefox 3?