Как работает расширение персонажа под капотом? - PullRequest
0 голосов
/ 19 января 2019

Я читаю CLR VIA C# Джеффри Рихтера.И, объясняя сравнение строк, он отмечает, что:

Когда метод Compare не выполняет порядковое сравнение, он выполняет расширения символов .Расширение символа - это когда символ расширяется до нескольких символов независимо от культуры.

String s1 = "Strasse";
String s2 = "Straße";
Boolean eq;

CultureInfo ci = new CultureInfo("de-­DE");
eq = String.Compare(s1, s2, true, ci) == 0; // returns true

В приведенном выше случае он отмечает:

... немецкий символ Eszet 'ß' всегда расширяется до 'ss.Таким образом, в примере кода вызов Compare всегда будет возвращать 0 независимо от того, какую культуру я на самом деле передаю.

Я хочу знать, из какого источника среда выполнения берет, что ßравен ss или как он это вычисляет?

...