我只是在解析以下网站。
有人找到文字
und wären damit auch
起初,“ä”看起来非常好,但是一旦我检查它,就会发现这不是常规的“ä”(表示为 ascw 228),而是这个:
ascw: 97, char: a
ascw: 776, char: ¨
我以前从未见过这样表示的“ä”。
网站怎么会使用这种奇怪的字符组合?它可能带来什么好处?
您在问题中没有提到的是使用的编码。很明显,它是基于 Unicode 的编码。
在 Unicode 中,代码点 U+0308(十进制为 776)是组合分音符。通过字母
a
和分音符,创建了德语字符 ä
。
确实有两种方法用元音变音来表示德语字符(在本例中为ä)。作为单个代码点:
U+00E4 latin small letter A with diaeresis
或者作为两个代码点的序列:
U+0061 latin small letter A
U+0308 combining diaeresis
类似地,您可以将两个代码点组合成大写的“Ä”:
U+0041 latin capital letter A
U+0308 combining diaeresis
在大多数情况下,Unicode 使用两个代码点,因为它需要更少的代码点来启用带有变音符号的广泛字符。然而,由于历史原因,带有德国变音符号和法国口音的字母存在特殊的代码点。
大多数编程语言的 Unicode 库都提供了对字符串进行“标准化”的功能,即,如果可能的话,将所有序列转换为单个代码点,或者将所有单个代码点扩展为两个代码点序列。另请参阅 天哪,这是文件上传名称的答案或原始问题。Cannot convert argument 2 to ByteString because the character at index 6 has value 776 which is greater than 255
供日后参考。
使用“diaeresis”一词来描述正确表征的“umlaut”是错误的。两个元音放在一起的第二个上有分音符,表明它们应该分开发音。元音变音放在单个字母上,表示它的发音不同(德语中“um” = 变化,“laut” = 声音),就好像它与“e”组合在一起。