Подтвердить что ты не робот

Почему "ss" равен немецкому острому персонажу "ß"?

Из этот вопрос Мне интересно, почему ä и 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
4b9b3361

Ответ 1

Если вы посмотрите на страницу Ä, вы увидите, что не всегда Ä является заменой для Æ (или ae), и это все еще используется на разных языках.

Вместо буквы ß:

В то время как буква "ß" использовалась на других языках, теперь она используется только на немецком языке. Однако он не используется в Швейцарии, Лихтенштейне или Намибии. [1] Немецкие ораторы в Германии, Австрии, Бельгии, [2] Дании, [3] Люксембурге [4] и Южном Тироле, Италия [5] следуют стандартным правилам для ß.

Таким образом, ß используется на одном языке с одним правилом (ß == ss), а Ä используется на нескольких языках с несколькими правилами.

Обратите внимание, что, учитывая, что фальцовка флагов:

Складывание дела в основном используется для безполезного сравнения текста, такого как идентификаторы в компьютерной программе, а не фактического преобразования текста

Официальный Unicode 7.0 Свойства фальцовки складки сообщает нам, что

00DF; F; 0073 0073; # LATIN SMAT LETTER SHARP S

где 00DF ß и 0073 - s, поэтому ß можно рассматривать для безплодного сравнения как ss.

Ответ 2

Некоторая справочная информация для вас. Взято отсюда.

Коды Windows Alt

В Windows комбинации клавиш ALT плюс числовой код могут использоваться для ввода неанглийского символа (буквы с акцентом или символа пунктуации) в любом приложении Windows. Доступны более подробные инструкции по набору акцентов клавишами ALT. Дополнительные параметры ввода акцентов в Windows также перечислены в разделе "Акценты" этого веб-сайта.

Примечание: буквы ü, ö, ä и ß можно заменить на "ue", "oe", "ae" или "ss" соответственно.

Немецкие коды ALT

Sym Windows ALT Code

Ä   ALT+0196
ä   ALT+0228
Ö   ALT+0214
ö   ALT+0246
Ü   ALT+0220
ü   ALT+0252
ß   ALT+0223
€   ALT+0128

Взято отсюда.

В немецком алфавите буква ß, называемая "Eszett" (IPA: [ɛstsɛt]) или "scharfes S", на английском языке "sharp S", является согласным, который развился как лигатура "long s и z" (sz) и "long s over round s" (ss). Говоря это произносится [s] (см. IPA). Начиная с немецкой орфографической реформы 1996 года, она используется только после долгих гласных и дифтонгов, а ss написана после коротких гласных. Название eszett происходит от двух букв S и Z, поскольку они произносятся на немецком языке. Его также называют scharfes S (IPA: [ʃaɐ̯.fəs ʔɛs, ʃaː.fəs ʔɛs] на немецком языке, что означает "острый S". Его кодировка Unicode - U + 00DF.

Ответ 3

Несколько фактов:

  • В швейцарском немецком eszet был исключен и заменен ss в 70-е годы, я думаю,

  • Для преобразования в верхний регистр официальное немецкое правило замены всегда было и остается eszet- > SS, хотя для юникода (U + 1E9E) несколько лет назад был определен прописной eszet. Я никогда не видел его нигде в дикой природе!

  • Никакие такие изменения и замены не были сделаны или были необходимы для трех umlaute äöü, которые всегда имели правильные версии в верхнем регистре ÄÖÜ, если у вас их нет. Замена их на ae, oe, ue является лишь обходным решением, хотя и вряд ли лучше, чем замена eszet на бета-версию или "B".

Таким образом, различные результаты сравнения, по крайней мере, имеют какой-то смысл, хотя лечение, особенно сортировка по запросу, на самом деле не является достоверно однородной в Германии между словарями или телефонными книгами, списками, индексами и т.д.

Ответ 4

Просто подождите полвека.

В этом году, после более чем столетнего спора, немецкий официально добавил в качестве действительной замены в верхнем регистре для нижней строки ß. Пройдет некоторое время, прежде чем люди привыкнут к новой форме в верхнем регистре , но как только столичная версия будет доминировать, не будет причин продолжать это зло

String.Equals("Mr. Meißner", "Mr. Meissner", StringComparison.CurrentCulture) == true;

взламывать.

Ответ 5

Большая часть того, что я читаю здесь, верна. Но есть некоторые заблуждения, так что - как немецкий - позвольте мне сказать прямо:

ß/ẞ - это подлинная германская буква, исходящая из лигатуры либо ss, либо sz, но никогда ss. Это long-s, за которым следуют либо s, либо z.

Средний слог s на немецком языке произносится как /z/, тогда как начальный и конечный слог s произносится /s/. Так как буква z в немецком языке всегда произносится как ts/, ей нужен способ переусердствовать на более редких случаях, когда это правило нарушается добавлением другой буквы и, наконец, формирует эту лигатуру для тех случаев, когда средний слог sound/s/был необходим.

Звук/s/никогда не возникает в оригинальных немецких словах в начале и только в одном иностранном слове, где он (тада!) написан с sz: Szene. Поэтому необходимость в капитале ß (ẞ), впервые полученном в качестве капитализации целых слов, использовалась. ß и ss - это не одно и то же, исторически sz и ß, поэтому его называют "eszett"! Существуют определенные правила, которые допускают перевод ß в ss, если ß недоступен, что не соответствует действительности в современных средах.

Правильная капитализация Maße - MAẞE, а правильная капитализация Masse - MASSE. Оба являются разными словами на немецком языке.

Итак, на самом немецком языке ss есть /s/shorting гласный до и ß есть/s/после длинного гласного. Предполагая, что ss и ß равны при любом сравнении, просто неправильно, потому что это может привести к тому, что слова совершенно другого значения будут равны. Период.

Ответ 6

Потому что именно немцы определяют свой язык. Или, может быть, наиболее точно: как те, кто определяет сортировку/сопоставление для немецкого языка, определяют, как немцы определяют немецкий язык.

Во многом так, как говорит английский, верхний регистр i равен i, но другие языки, использующие латинский алфавит (например, турецкий), не согласны.

Ответ 7

В немецком языке символ ß (который существует только в нижнем регистре) выглядит как ss. Время от времени его использование меняется, и многие люди путают ß и ss. Если мы напишем слово типа Fuß (foot) во всем капитале, мы напишем FUSS. Если клавиатура или шрифт не поддерживает ß, пишем ss и это (почти, в основном) правильно.

Это может объяснить, почему ß и ss обрабатываются как эквивалентные, если речь идет о сортировке.