Из этот вопрос Мне интересно, почему ä
и ae
отличаются (что имеет смысл), но обрабатываются ß
и ss
как равный. Я не нашел ответа на SO, даже если этот вопрос, по-видимому, связан и даже упоминает, что ß
будет сравниваться с ss
в Германии или подобный ", но не почему.
Единственный ресурс MSDN, который я нашел, был следующим: Практическое руководство. Сравнение строк
Здесь упоминается следующее, но также отсутствует причина:
// "They dance in the street."
// Linguistically (in Windows), "ss" is equal to
// the German essetz: 'ß' character in both en-US and de-DE cultures.
.....
Итак, почему это оценивается до true
, как с культурой de-DE
, так и с любой другой культурой:
var ci = new CultureInfo("de-DE");
int result = ci.CompareInfo.Compare("strasse", "straße", CompareOptions.IgnoreNonSpace); // 0
bool equals = String.Equals("strasse", "straße", StringComparison.CurrentCulture); // true
equals = String.Equals("strasse", "straße", StringComparison.InvariantCulture); // true