这个字符是如何编码的? ◡̈

How is this character encoded? ◡̈

有人给我发了这个字符:◡̈ 他们将其用作笑脸表情符号,并且根据它的呈现位置,它看起来像曲线上的两个点或曲线右侧的两个点。

看到它的时候,我想是不是来自其他语言,所以我打开wiki的list of unicode characters搜索了一下。匹配项为零。但我知道它一定在那里,因为我能够使用它。

接下来是:当我将字符粘贴到 chrome 中的搜索框中以对 wiki 页面进行字符串搜索时,它是单个字符。但是当我按下退格键时,它只会删除点,留下立即匹配 U+25E1、"lower half circle."

的半圆

那这是什么?下半圆字符上的元音变音?这是如何运作的?您可以在任意 unicode 字符上添加重音符号吗?如果是这样,如何?这对编码有何影响?

从标题 (◡̈) 中复制的内容以 UTF-8 编码为两个字符,代码为 U+25E1 (0xE2 0x97 0xA1) 和 U+0308 (0xCC 0x88)。

'combining diaeresis'与另一个字符组合。为什么字符在不同的地方以不同的方式呈现并不明显。 Unicode 标准表示 Chapter 2: General Structure p21:

Combining characters (such as accents) are stored following the base character to which they apply, but are positioned relative to that base character and thus do not follow a simple linear progression in the final rendered text.

您可以在 SO 上找到 'zalgo' 的大量证据 — 它们是大量的组合字符:

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

另请参阅:


这显示了 Zalgo 文本中的 Unicode 代码点,每行 4 个代码点,跨页面工作,然后向下工作。 U+0040是COMMERCIAL AT后面跟着25个组合字符,比如第一个是U+032E COMBINING BREVE BELOW.

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