Я хочу знать стандартный алгоритм преобразования символов Юникода в нижний регистр, предложенный unicode.org .
Кроме того, большинство языков программирования следуют этому предложенному стандартный?
Я хочу знать стандартный алгоритм для преобразования символов Юникода в строчные буквы, предложенные unicode.org.
Основной алгоритм состоит в том, чтобы просто объединить строчные буквы каждого отдельного символа (как определено в предпоследнем столбце в UnicodeData.txt ). Есть также некоторые специальные правила для обработки многосимвольных отображений (İ → i̇ с дополнительной КОМБИНИРУЮЩЕЙ ТОЧКОЙ НАД i), условных отображений (Σ → ς в конце слова, в противном случае - σ), и правила, зависящие от языка (например, турецкий без точки ı).
Кроме того, большинство языков программирования следовать этому предложенному стандарту?
Java делает. Python реализует основные правила, но не специальные. А в C вообще нет стандартизированной поддержки Unicode.
Языки программирования различаются по тому, насколько хорошо они поддерживают Unicode. Большинство из них не имеют символов Юникода в качестве встроенного типа. Обычно это обрабатывается либо в библиотеке, либо с помощью вызовов ОС.
Например, C ++ не имеет собственного символьного типа Unicode, но имеет поддержку локали в stl (которая определена как часть языка). У Ada есть собственный тип Wide_Character, а также поддержка библиотеки для управления им.
.NET действительно имеет поддержку юникода и предлагает встроенные функции для переключения между верхним и нижним регистром. Вероятно, это справедливо и для некоторых других языков.