6

我在某个地方读到,在 Unicode 中,除了 AZ 之外,还有其他具有小写等效字符的字符。这些可能是哪一个,为什么任何其他字符都需要大写和小写?

4

5 回答 5

12

英语,甚至那个奇怪的变体,美式英语:-),并不是地球上唯一的语言。有一些看起来奇怪的字符(至少对于那些熟悉拉丁字符的人来说),但即使是拉丁字符也有细微的变化。

我非常熟悉的其中两个是希腊语和德语:

Αα Ββ Γγ Δδ Εε Ζζ  Ηη Θθ Ιι Κκ Λλ Μμ
Νν Ξξ Οο Ππ Ρρ Σσς Ττ Υυ Φφ Χχ Ψψ Ωω

Aa Ää Bb Cc Dd Ee Ff Gg Hh Ii Jj Kk Ll Mm Nn
Oo Öö Pp Qq Rr Ss ß  Tt Uu Üü Vv Ww Xx Yy Zz

这就是为什么我们不允许使用以下代码:

char lower = upper - 'A' + 'a';

不再。在一家认真对待 i18n 的公司里做这样的事情几乎是被解雇的理由。使用 Unicode-awaretoLower()/toUpper()类型的函数是更好的方法。

于 2009-05-30T07:26:12.503 回答
4

除了我们大多数人习惯在这里看到的通常源自拉丁语的西欧字母之外,还有很多字母。首先,您需要重音字母和连字的大写和小写版本,例如 Àà、IJij 等。在用亚洲语言设置文档时,还使用了全角版本的拉丁字符(我懒得查)。此外,现在还使用其他字母,例如西里尔字母 (Бб) 和希腊字母 (Δδ)。

还有土耳其,根据杰夫阿特伍德的说法,这有点困难。使用环境提供的大写/小写函数(通常)是处理用户输入数据的方式。

于 2009-05-30T05:37:39.713 回答
4

德语中不需要大写的 ß,因为该字母从不用作名称或单词的第一个字母。其余的,在某些语言(法语?)中不使用大写重音字符,只使用非重音变体。

于 2012-12-10T19:34:59.593 回答
3

在某些语言中(法语?)不使用大写重音字符(...)
[Reiner Bakels - 2012 年 12 月 10 日 19:34]

嗯,是的……但不是!

在手动“字体”页面制作的好时代,这曾经是真的。由于强调的大写字母(例如“É”)在一行上会上升得太高,通常的做法是忽略它而只显示“E”。然后“des études”通常表现为“DES ETUDES”(没有重音)。

But that is not recommended anymore. Whenever one can edit/type/publish the accentuated capital letters, we are invited to do so. The very official Quebec's "Office de la langue française" is actually promoting this since more than two decades!

That is becoming specially crucial in our era of computers and the Web, where texts are more and more processed (read & translated) by machines. Omitting accents can entirely change the meaning. tache (stain) -vs- tâche (task), du (of) -vs- dû (something you have to pay), and many many more words. Continuing to omit the accents on uppercase is definitively not a good idea (although century old legacy). Using them whereever it is now possible is a far better practice.

于 2017-01-24T14:53:10.960 回答
2

任何带有重音符号的字母都可能具有不同的代码点,或者是多个代码点的组合。例如,ÂËÕÝ 是具有小写等效项的大写字符。

关键是根据用户的区域设置忠实地实施标准,或者通过使用正确处理 toupper()/tolower() 的一般情况的系统库来获得相同的效果。

于 2009-05-30T05:33:13.887 回答