Есть ли способ расшифровать данную кодировку? - PullRequest
0 голосов
/ 07 февраля 2020

В Твиттере этот пользователь: https://twitter.com/Rockprincess818

, кажется, использовал творческие методы кодирования для достижения специального форматирования:

Они перечисляют свое имя как:

????

И их био как:

?'? ??? ???? ??? ???? ?????????. 101'?? ???? ??? ????.

Ничто из этого не является стандартной кодировкой (даже не Engli sh - хотя я могу ошибаться в этом).

Мои вопросы:

  1. Что они сделали для достижения этого специального форматирования?
  2. Как можно расшифровать такой ненормальный текст, чтобы понять, что происходит?

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Стандарт Unicode имеет концепцию совместимости , которая позволяет определять некоторые кодовые точки как эквивалентные другим. Учитывая строки в вопросе, нормализация NFK C (композиция совместимости форм нормализации) может быть применена для получения эквивалентных латинских символов. Языки программирования могут предоставлять инструменты для применения нормализации программно.

В javascript можно использовать метод string.normalize

name = '????'
"????"
bio = "?'? ??? ???? ??? ???? ?????????. ???'?? ???? ??? ????."
"?'? ??? ???? ??? ???? ?????????. ???'?? ???? ??? ????."
name.normalize('NFKC')
"Lisa"
bio.normalize('NFKC')
"I'm not here for your amusement. You're here for mine."

В python, unicodedata.normalize можно использовать

>>> import unicodedata as ud
>>> name = '????'
>>> bio = "?'? ??? ???? ??? ???? ?????????. ???'?? ???? ??? ????."
>>> ud.normalize('NFKC', name)
'Lisa'
>>> ud.normalize('NFKC', bio)
"I'm not here for your amusement. You're here for mine."
1 голос
/ 13 февраля 2020

1) Есть много онлайн-генераторов (например, этот или этот ), которые позволяют пользователям преобразовывать обычный текст в какое-то причудливое графическое представление, заменяя буквы латинского алфавита на аналогичные поиск символов Unicode.

2) Наиболее очевидный способ расшифровки такого текста обратно к обычным латинским символам - попытаться найти, какие инструменты использует пользователь и какие отображения используют эти инструменты. Затем вы можете отобразить причудливые кодовые точки Unicode обратно на латинские символы. Вы можете найти сопоставления, например. преобразовав «ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz» в «скорописи» с этими инструментами и проанализировав результат.

...