Как закодирован этот символ? ◡̈ - PullRequest
0 голосов
/ 25 января 2020

Кто-то написал мне этот символ: ◡̈ Они использовали его как смайлик-смайлик, и в зависимости от того, где он отображается, он выглядит либо как две точки на кривой, либо как две точки справа от кривой.

Когда я увидел его, мне стало интересно, пришло ли оно от какого-то другого языка, поэтому я открыл вики список символов Юникода и поискал его. Есть ноль совпадений. Тем не менее, я знаю, что это должно быть как-то, так как я могу его использовать.

Теперь вот что: когда я вставил символ в поле поиска в chrome, чтобы искать строку на вики-странице, это один персонаж. Но когда я нажимаю клавишу Backspace, он удаляет только точки, оставляя полукруг, который сразу соответствует U+25E1, «нижнему полукругу».

Так что же это? Умлаут над нижним полукругом? Как это работает? Можете ли вы добавить знаки ударения на любой произвольный символ Unicode? Если так, то как? И как это работает с кодировкой?

1 Ответ

1 голос
/ 25 января 2020

То, что скопировано из заголовка (◡̈), кодируется в UTF-8 как два символа с кодами U + 25E1 (0xE2 0x97 0xA1) и U + 0308 (0x CC 0x88).

  • U + 25E1 - НИЖНЯЯ ПОЛОВИНА КРУГА.
  • U + 0308 - КОМБИНИРУЮЩИЙ ДИАРЕЗ.

Комбинированный диарез с другим персонажем. Непонятно, почему персонажи по-разному отображаются в разных местах. Стандарт Unicode гласит: Глава 2: Общая структура p21:

Комбинированные символы (например, акценты) сохраняются после базового символа, к которому они применяются, но располагаются относительно этого базовый символ и, следовательно, не следует простой линейной прогрессии в окончательном отрисованном тексте.

Вы можете найти множество доказательств 'zal go' на SO - это могучие груды комбинирующих символов:

@ ̮̘̮̜̤͓͓̓ͪ̓͆͗̑Ṷ̫̠̤̙̻͚̗ͭs̹͓̰̫͉̲̺̈̏̽̅̑ͩ̇̓̉e͖̝̦̦̿r͔̒̿̋̂̓n̹͖̥ͥͦͤ̍͊̏ä͇͖͚͖̃̎͊m̭͇̂͆͋̋͒e̫̠͇̰̱̦̹͗͋̓̿͒ ͔͖̫̬̗̪̪̳ͧ̄ͫB̜̥̣̬̮͈͒̄ͪ͊l̮͉̣̟̪̪̿̍ͫ͋͐̑a̜̦̪͗͗̈́ͣ͊ḫ̘̯͈̠̞͒ͯ ̣͕͚̗̠͖̫̆͌͒̓͛b̖̣͇̖̦̃̑ͬͭͥl͔͍͚͕̲̪̼͎ͧ̇̏ạ̖̪͚̯̊ͤͣͦͮ̌h̘͓͔̟͔͍̏ͣͦ̓̓ ̫̼̫ͮ͌̄ͤ̿̈͆b̙͍̼̜͍̹̬̬͎ͥ̓ͯ̂ḽ̜̟̲̾̅̆ͦ̃ͨa͇̰̝̺͊ͧͫ͛h̯̻͉̉̒̉̈́́ͥ̀.̖̩̭͇̭͔̹̈́̇ ͬͦͦͨ̾̇.͍̪̣͂ͬ.̞͍̥̪̺̤̣̜͆ͫ̈́͑ͦ͂͑͑

См. Также:


Показывает кодовые точки Unicode в тексте Zal go, 4 кодовых пункта на строку, работая по всей странице, а затем вниз по странице. U + 0040 - это КОММЕРЧЕСКИЙ АТ, за которым следуют 25 комбинирующих символов, например, первый из которых - U + 032E, КОМБИНИРУЮЩИЙ ДАВУ ВНИЗ.

0x40 = U+0040            0xCC 0xAE = U+032E       0xCC 0x98 = U+0318       0xCC 0xAE = U+032E
0xCC 0x9C = U+031C       0xCC 0xA4 = U+0324       0xCD 0x93 = U+0353       0xCD 0x93 = U+0353
0xCC 0x93 = U+0313       0xCD 0xAA = U+036A       0xCC 0x93 = U+0313       0xCD 0x86 = U+0346
0xCD 0x97 = U+0357       0xCC 0x91 = U+0311       0xE1 0xB9 0xB6 = U+1E76  0xCC 0xAB = U+032B
0xCC 0xA0 = U+0320       0xCC 0xA4 = U+0324       0xCC 0x99 = U+0319       0xCC 0xBB = U+033B
0xCD 0x9A = U+035A       0xCC 0x97 = U+0317       0xCD 0xAD = U+036D       0x73 = U+0073
0xCC 0xB9 = U+0339       0xCD 0x93 = U+0353       0xCC 0xB0 = U+0330       0xCC 0xAB = U+032B
0xCD 0x89 = U+0349       0xCC 0xB2 = U+0332       0xCC 0xBA = U+033A       0xCC 0x88 = U+0308
0xCC 0x8F = U+030F       0xCC 0xBD = U+033D       0xCC 0x85 = U+0305       0xCC 0x91 = U+0311
0xCD 0xA9 = U+0369       0xCC 0x87 = U+0307       0xCC 0x93 = U+0313       0xCC 0x89 = U+0309
0x65 = U+0065            0xCD 0x96 = U+0356       0xCC 0x9D = U+031D       0xCC 0xA6 = U+0326
0xCC 0xA6 = U+0326       0xCC 0xBF = U+033F       0x72 = U+0072            0xCD 0x94 = U+0354
0xCC 0x92 = U+0312       0xCC 0xBF = U+033F       0xCC 0x8B = U+030B       0xCC 0x82 = U+0302
0xCC 0x93 = U+0313       0x6E = U+006E            0xCC 0xB9 = U+0339       0xCD 0x96 = U+0356
0xCC 0xA5 = U+0325       0xCD 0xA5 = U+0365       0xCD 0xA6 = U+0366       0xCD 0xA4 = U+0364
0xCC 0x8D = U+030D       0xCD 0x8A = U+034A       0xCC 0x8F = U+030F       0xC3 0xA4 = U+00E4
0xCD 0x87 = U+0347       0xCD 0x96 = U+0356       0xCD 0x9A = U+035A       0xCD 0x96 = U+0356
0xCC 0x83 = U+0303       0xCC 0x8E = U+030E       0xCD 0x8A = U+034A       0x6D = U+006D
0xCC 0xAD = U+032D       0xCD 0x87 = U+0347       0xCC 0x82 = U+0302       0xCD 0x86 = U+0346
0xCD 0x8B = U+034B       0xCC 0x8B = U+030B       0xCD 0x92 = U+0352       0x65 = U+0065
0xCC 0xAB = U+032B       0xCC 0xA0 = U+0320       0xCD 0x87 = U+0347       0xCC 0xB0 = U+0330
0xCC 0xB1 = U+0331       0xCC 0xA6 = U+0326       0xCC 0xB9 = U+0339       0xCD 0x97 = U+0357
0xCD 0x8B = U+034B       0xCC 0x93 = U+0313       0xCC 0xBF = U+033F       0xCD 0x92 = U+0352
0x20 = U+0020            0xCD 0x94 = U+0354       0xCD 0x96 = U+0356       0xCC 0xAB = U+032B
0xCC 0xAC = U+032C       0xCC 0x97 = U+0317       0xCC 0xAA = U+032A       0xCC 0xAA = U+032A
0xCC 0xB3 = U+0333       0xCD 0xA7 = U+0367       0xCC 0x84 = U+0304       0xCD 0xAB = U+036B
0x42 = U+0042            0xCC 0x9C = U+031C       0xCC 0xA5 = U+0325       0xCC 0xA3 = U+0323
0xCC 0xAC = U+032C       0xCC 0xAE = U+032E       0xCD 0x88 = U+0348       0xCD 0x92 = U+0352
0xCC 0x84 = U+0304       0xCD 0xAA = U+036A       0xCD 0x8A = U+034A       0x6C = U+006C
0xCC 0xAE = U+032E       0xCD 0x89 = U+0349       0xCC 0xA3 = U+0323       0xCC 0x9F = U+031F
0xCC 0xAA = U+032A       0xCC 0xAA = U+032A       0xCC 0xBF = U+033F       0xCC 0x8D = U+030D
0xCD 0xAB = U+036B       0xCD 0x8B = U+034B       0xCD 0x90 = U+0350       0xCC 0x91 = U+0311
0x61 = U+0061            0xCC 0x9C = U+031C       0xCC 0xA6 = U+0326       0xCC 0xAA = U+032A
0xCD 0x97 = U+0357       0xCD 0x97 = U+0357       0xCC 0x88 = U+0308       0xCC 0x81 = U+0301
0xCD 0xA3 = U+0363       0xCD 0x8A = U+034A       0xE1 0xB8 0xAB = U+1E2B  0xCC 0x98 = U+0318
0xCC 0xAF = U+032F       0xCD 0x88 = U+0348       0xCC 0xA0 = U+0320       0xCC 0x9E = U+031E
0xCD 0x92 = U+0352       0xCD 0xAF = U+036F       0x20 = U+0020            0xCC 0xA3 = U+0323
0xCD 0x95 = U+0355       0xCD 0x9A = U+035A       0xCC 0x97 = U+0317       0xCC 0xA0 = U+0320
0xCD 0x96 = U+0356       0xCC 0xAB = U+032B       0xCC 0x86 = U+0306       0xCD 0x8C = U+034C
0xCD 0x92 = U+0352       0xCC 0x93 = U+0313       0xCD 0x9B = U+035B       0x62 = U+0062
0xCC 0x96 = U+0316       0xCC 0xA3 = U+0323       0xCD 0x87 = U+0347       0xCC 0x96 = U+0316
0xCC 0xA6 = U+0326       0xCC 0x83 = U+0303       0xCC 0x91 = U+0311       0xCD 0xAC = U+036C
0xCD 0xAD = U+036D       0xCD 0xA5 = U+0365       0x6C = U+006C            0xCD 0x94 = U+0354
0xCD 0x8D = U+034D       0xCD 0x9A = U+035A       0xCD 0x95 = U+0355       0xCC 0xB2 = U+0332
0xCC 0xAA = U+032A       0xCC 0xBC = U+033C       0xCD 0x8E = U+034E       0xCD 0xA7 = U+0367
0xCC 0x87 = U+0307       0xCC 0x8F = U+030F       0xE1 0xBA 0xA1 = U+1EA1  0xCC 0x96 = U+0316
0xCC 0xAA = U+032A       0xCD 0x9A = U+035A       0xCC 0xAF = U+032F       0xCC 0x8A = U+030A
0xCD 0xA4 = U+0364       0xCD 0xA3 = U+0363       0xCD 0xA6 = U+0366       0xCD 0xAE = U+036E
0xCC 0x8C = U+030C       0x68 = U+0068            0xCC 0x98 = U+0318       0xCD 0x93 = U+0353
0xCD 0x94 = U+0354       0xCC 0x9F = U+031F       0xCD 0x94 = U+0354       0xCD 0x8D = U+034D
0xCC 0x8F = U+030F       0xCD 0xA3 = U+0363       0xCD 0xA6 = U+0366       0xCC 0x93 = U+0313
0xCC 0x93 = U+0313       0x20 = U+0020            0xCC 0xAB = U+032B       0xCC 0xBC = U+033C
0xCC 0xAB = U+032B       0xCD 0xAE = U+036E       0xCD 0x8C = U+034C       0xCC 0x84 = U+0304
0xCD 0xA4 = U+0364       0xCC 0xBF = U+033F       0xCC 0x88 = U+0308       0xCD 0x86 = U+0346
0x62 = U+0062            0xCC 0x99 = U+0319       0xCD 0x8D = U+034D       0xCC 0xBC = U+033C
0xCC 0x9C = U+031C       0xCD 0x8D = U+034D       0xCC 0xB9 = U+0339       0xCC 0xAC = U+032C
0xCC 0xAC = U+032C       0xCD 0x8E = U+034E       0xCD 0xA5 = U+0365       0xCC 0x93 = U+0313
0xCD 0xAF = U+036F       0xCC 0x82 = U+0302       0xE1 0xB8 0xBD = U+1E3D  0xCC 0x9C = U+031C
0xCC 0x9F = U+031F       0xCC 0xB2 = U+0332       0xCC 0xBE = U+033E       0xCC 0x85 = U+0305
0xCC 0x86 = U+0306       0xCD 0xA6 = U+0366       0xCC 0x83 = U+0303       0xCD 0xA8 = U+0368
0x61 = U+0061            0xCD 0x87 = U+0347       0xCC 0xB0 = U+0330       0xCC 0x9D = U+031D
0xCC 0xBA = U+033A       0xCD 0x8A = U+034A       0xCD 0xA7 = U+0367       0xCD 0xAB = U+036B
0xCD 0x9B = U+035B       0x68 = U+0068            0xCC 0xAF = U+032F       0xCC 0xBB = U+033B
0xCD 0x89 = U+0349       0xCC 0x89 = U+0309       0xCC 0x92 = U+0312       0xCC 0x89 = U+0309
0xCC 0x88 = U+0308       0xCC 0x81 = U+0301       0xCC 0x81 = U+0301       0xCD 0xA5 = U+0365
0xCC 0x80 = U+0300       0x2E = U+002E            0xCC 0x96 = U+0316       0xCC 0xA9 = U+0329
0xCC 0xAD = U+032D       0xCD 0x87 = U+0347       0xCC 0xAD = U+032D       0xCD 0x94 = U+0354
0xCC 0xB9 = U+0339       0xCC 0x88 = U+0308       0xCC 0x81 = U+0301       0xCC 0x87 = U+0307
0xCD 0x90 = U+0350       0xCD 0xAC = U+036C       0xCD 0xA6 = U+0366       0xCD 0xA6 = U+0366
0xCD 0xA8 = U+0368       0xCC 0xBE = U+033E       0xCC 0x87 = U+0307       0x2E = U+002E
0xCD 0x8D = U+034D       0xCC 0xAA = U+032A       0xCC 0xA3 = U+0323       0xCD 0x82 = U+0342
0xCD 0xAC = U+036C       0x2E = U+002E            0xCC 0x9E = U+031E       0xCD 0x8D = U+034D
0xCC 0xA5 = U+0325       0xCC 0xAA = U+032A       0xCC 0xBA = U+033A       0xCC 0xA4 = U+0324
0xCC 0xA3 = U+0323       0xCC 0x9C = U+031C       0xCD 0x86 = U+0346       0xCD 0xAB = U+036B
0xCC 0x88 = U+0308       0xCC 0x81 = U+0301       0xCD 0x91 = U+0351       0xCD 0xA6 = U+0366
0xCD 0x82 = U+0342       0xCD 0x91 = U+0351       0xCD 0x91 = U+0351       0x0A = U+000A
...