这个代表元音变音的疯狂德语字符组合是什么?

tmi*_*hty 4 encoding text diacritics

我只是在解析以下网站

\n\n

那里有人找到文字

\n\n
und wa\xcc\x88ren damit auch\n
Run Code Online (Sandbox Code Playgroud)\n\n

起初,“\xc3\xa4”看起来非常好,但是一旦我检查它,就会发现这不是常规的“\xc3\xa4”(表示为 ascw 228),而是这个:

\n\n
ascw: 97, char: a\nascw: 776, char: \xc2\xa8\n
Run Code Online (Sandbox Code Playgroud)\n\n

我以前从未见过这样表示的“\xc3\xa4”。

\n\n

一个网站怎么会使用这种奇怪的字符组合?它可能带来什么好处?

\n

Cod*_*odo 5

您在问题中没有提到的是所使用的编码。很明显,它是基于 Unicode 的编码。

\n

在 Unicode 中,代码点 U+0308(十进制为 776)是组合分音符。从字母和分音符号中,创造了a德语字符。\xc3\xa4

\n

确实有两种方法可以用元音变音来表示德语字符(在本例中为 \xc3\xa4)。作为单个代码点:

\n
U+00E4 latin small letter A with diaeresis\n
Run Code Online (Sandbox Code Playgroud)\n

或者作为两个代码点的序列:

\n
U+0061 latin small letter A\nU+0308 combining diaeresis\n
Run Code Online (Sandbox Code Playgroud)\n

类似地,您可以将两个代码点组合为大写\'\xc3\x84\':

\n
U+0041 latin capital letter A\nU+0308 combining diaeresis\n
Run Code Online (Sandbox Code Playgroud)\n

在大多数情况下,Unicode 使用两个代码点,因为它需要更少的代码点来启用带有变音符号的广泛字符。然而,由于历史原因,带有德国变音符号和法国口音的字母存在特殊的代码点。

\n

大多数编程语言的 Unicode 库都提供了标准化字符串的功能,即,如果可能的话,将所有序列转换为单个代码点,或者将所有单个代码点扩展为两个代码点序列。另请参阅Unicode 规范化形式

\n