Почему "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
Ответы
Ответ 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
обрабатываются как эквивалентные, если речь идет о сортировке.