Для первого есть это объяснение :
В немецком языке Sharp S ("ß" или U + 00df) - это строчная буква,и заглавными буквами «SS».
Другими словами, U + 1E9E строчные буквы до U + 00DF, но верхний регистр U + 00DF не U + 1E9E.
Во втором случае U + 212A (КЕЛЬВИНСКИЙ ЗНАК) в нижнем регистре до U + 0068 (ЛАТИНСКОЕ МАЛЕНЬКОЕ ПИСЬМО K).Верхний регистр U + 0068 - U + 004B (LATIN CAPITAL LETTER K).Это, кажется, имеет смысл для меня.
В третьем случае U + 0130 (LATIN CAPITAL LETTER I WITH DOT ABE) является турецким / азербайджанским символом, который строчными буквами до U + 0069 (LATIN SMALL LETTERЯ).Я полагаю, что если бы вы оказались в турецкой / азербайджанской локали, вы бы получили правильную версию U + 0069 в верхнем регистре, но это не обязательно было бы универсально.
Символы не обязательно должны иметь симметричную верхнюю- и преобразования в нижнем регистре.
Редактировать: Чтобы ответить на комментарий PhiLho, приведенный ниже, спецификация Unicode 6.0 говорит об U + 212A (ЗНАК КЕЛЬВИНА):
Три буквоподобных символа получили каноническую эквивалентность обычным буквам: ЗНАК U + 2126, ЗНАК U + 212A ЗНАК КЕЛЬВИНА и ЗНАК АНГСТРОМА U + 212B.Во всех трех случаях следует использовать обычное письмо.Если текст нормализован в соответствии со Стандартом Unicode № 15 «Формы нормализации Юникода», эти три символа будут заменены их обычными эквивалентами.
Другими словами, вам не следует использовать U+ 212A, вместо этого вы должны использовать U + 004B (LATIN CAPITAL LETTER K), и если вы нормализуете текст Unicode, U + 212A следует заменить на U + 004B.