5 ms·
A character that existed for a while, just not in digital typefaces.
by ygra 8y ago
A character that existed for a while, just not in digital typefaces.
- majewsky 8y agoThe upper-case ß is not in common use, though. If I'm not mistaken, it's only use is correctly reproducing names in official documents that write a name in all-caps. In common usage, when mapping to upper case, the lower-case ß gets mapped to double S (e.g. "Straße" -> "STRASSE"), which I guess is another fun edge case for Unicode implementations to cover.
- contravariant 8y agoIf you want that to work nicely that would be a heck of a headache. Not only are "Straße" and "STRASSE" different lengths, but converting "SS" to lower case would now depend on context (which is probably the case even when you're solely considering the German language, consider the name "Bessel" for instance, or compound words like Linnaeusstraße).
- kuschku 8y agoTrue, but that issue has been existing for the past decades already. toLower(toUpper(a)) != a len(toLower(toUpper(a))) != a If your code assumes any of this, it already was broken
- komali2 8y agoOh wait wtf, why
- nneonneo 8y agoCase changes are locale-sensitive. For example, if your locale is Turkish, toUpper(“i”) is “İ”, the Turkish dotted-I. Meanwhile, toLower(“I”) is “ı”, the dotless I. But now, if you don’t have your locale set to Turkish, then you have toUpper(“ı”) = “I”, toLower(“I”) = “i” so the character does not round trip.
- tedunangst 8y agoThat doesn't explain why upper lower conversion shouldn't round trip within one locale.
- duckerude 8y agoAs an example, the Greek letter sigma has two lowercase forms, depending on whether it's at the end of a word. So 'ς'.upper().lower() == 'σ', even though all three characters are ordinary Greek letters you could even find within a single word.
- princekolt 8y agoadds to personal notes: Never accept a job that involves manually dealing with locales
- rspeer 8y agoGood note, but the fact that ς doesn't round trip isn't locale-dependent.
- tedunangst 8y agoThanks. That's a much better example.
- contravariant 8y agoYou'd assume the somewhat weaker properties of: toLower(toUpper(a)) == toLower(a) toLower(toLower(a)) == toLower(a) should work though, with German even that is not guaranteed unless you really spend a lot of time figuring out when to convert SS to ß. I suppose making toLower convert ß to ss would avoid that particular problem, but I'm not sure the Germans would agree with that one (which is why I said no nice solution exists). At the very least it looks like you need a different toLower for style purposes than one for string comparison, unless someone can come up with a string where replacing ß with ss changes the meaning (or some equivalent to this), in which case there's no hope.
- fhars 8y ago> I suppose making toLower convert ß to ss would avoid that particular problem But that function would not be toLower(), it would be toSwiss() > unless someone can come up with a string where replacing ß with ss changes the meaning "Er trinkt in Maßen" - He drinks with moderation. "Er trinkt in Massen" - He drinks huge amounts. The pronounciation is different, too, a vowel before "ß" is long, before "ss" short.
- contravariant 8y agoWell, there goes any hope of a sensible case-insensitive way to compare strings in German. Unless you can figure out which of those two should correspond to "ER TRINKT IN MASSEN".
- NihilumExNil 8y agoI think drinking too much is why we are having this problem in the first place, so maybe people should just stop it. You'd end up with Maßßen and Maszen eventually. Ich geh dann mal zum Arz, mir jezt ein attezt holen. Da wird man doch bekloppt.
- NihilumExNil 8y agoI maintain that ss is a legitimate substitute in standard German orthography, just as ae for ä etc. not only because I can't be arsed to switch key layouts, but because ß is a useless character. If you compare Fuß, Ruß and Mus; Muss and Bus, Plus; Museeum and Muster. It is derived from a ligature, which is not any less confusing between ss and sz. So Buße implies it was once written Busse (or Busze). Add to that the phonetic difference between jetzt, jezt, and Arzt, is rather ridiculous, I mean, what do we have the c for? We rather standardize an extra letter and use c chiefly in ch and sch, but why? Ich habe da so meine Cweifel, ehh Tsweivel, eh ... ach lassen wir dass.
- kuschku 8y agoActually, the Council of German Language has been recommending use of ẞ in daily usage instead of SS since 2017, and it’s starting to get more popular.
- germanier 8y agoThey are now allowing both ẞ and SS but are not recommending one over the other. See Rule 25 E3: > Bei Schreibung mit Großbuchstaben schreibt man SS. Daneben ist auch die Verwendung des Großbuchstabens ẞ möglich. Beispiel: Straße – STRASSE – STRAẞE. http://www.rechtschreibrat.com/DOX/rfdr_Regeln_2016_redigiert_2018.pdf http://www.rechtschreibrat.com/DOX/rfdr_Regeln_2016_redigier...
- Tomte 8y agoIt existed in a single edition of an orthography reference in Eastern Germany (and was removed in the next edition). All other extant uses were designers and font makers writing blog,posts how much they want that character and discussing how it should look like. Besides that it never existed. Unicode made a mistake. It was just that some people feel it should exist, in order to „complete“ the set of characters.
- germanier 8y agoIt has been used occasionally for the last century, long before there were blogs or posts. I collected a few examples here http://imgur.com/a/NaFgA http://imgur.com/a/NaFgA The most compelling argument is that this character has been used on German passports since at least 1988 (I don't know whether they started this even earlier). On passports, names are written in capital letters by international standard. That character is necessary to accurately represent people's names.
- int_19h 8y agoI'm kind of surprised that the international standard permits a letter that isn't found in any other alphabet. For those of us who have names in languages that use non-Latin alphabets, our passports spell them out using Latin letters (usually resulting in something that rarely sounds like the original when pronounced in a sensible way).
- Tomte 8y agoThe machine-readable line gets substituted letters (ü --> ue). The "normal page" doesn't. Gave me a tense moment in China, when a border agent questioned the difference between the name on my ticket and the name in the passport. Of course, to Germans both forms are interchangeable, but I'd compare a Chinese letter sign by sign, too. He finally accepted it when I showed him that the machine-readable line was identically spelled.