Java, вероятно, был первым популярным языком, в котором впервые была реализована поддержка Unicode.
Java использует символы из набора символов Unicode.
Python 3.x: http://docs.python.org/dev/3.0/whatsnew/3.0.html
В Python 3 было много критических изменений, в том числе переход на Unicode для всего текста .
Итак, Python не был разработан основа для Unicode, но Python 3 был.
В основном все языки .NET являются языками Unicode, например C # и VB.NET .
Действительно сложно разработать поддержку Unicode в будущем в язык программирования с самого начала.
Java - один из языков, для которых это предусмотрено в спецификации языка. Однако поддержка Unicode в Java v1.0 отличается от v5 и v6 Java SDK. Это в первую очередь связано с версией Unicode, которой учитывалась спецификация языка, когда язык был первоначально разработан. Java пытается отслеживать изменения в стандарте Unicode с каждым основным выпуском.
Ранние реализации JLS могли требовать поддержки Unicode, прежде всего потому, что сам Unicode поддерживал 65536 символов (версия 1.0 для Java поддерживала Unicode 1.1, а Java v1.4 поддерживала Unicode 3.0), который был совместим с 16-битным пространством хранения, занимаемым символами. Это изменилось с появлением Unicode 3.1 - это развивающийся стандарт, обычно с добавлением большего количества символов в каждой версии. Персонажи, добавленные позже в 3. 1 были названы дополнительными символами . Поддержка дополнительных символов была добавлена в Java 5 через JSR-204 ; Java 5 и 6 поддерживают Unicode 4.0.
Поэтому не удивляйтесь, если разные языки программирования по-разному реализуют поддержку Unicode.
С другой стороны, PHP (!!) и Ruby не имеют встроенной поддержки Unicode. во время создания.
PS: Поддержка Unicode v5.1 должна быть сделана в Java 7 .
Иногда функция, которая была включена в язык при его первоначальной разработке, не всегда лучшая.
Языки со временем изменились, и многие из них стали раздуваться дополнительными функциями, при этом не обязательно поддерживать в актуальном состоянии те функции, которые он изначально включал.
Поэтому я просто отбрасываю идею, что вам не обязательно сбрасывать со счетов языки, которые недавно добавили Unicode. У них будет то преимущество, что они добавят Unicode в уже готовый инструмент разработки и получат возможность сделать это правильно с первого раза.
Имея это в виду, я хочу убедиться, что Delphi включен сюда в качестве одного из ваших ответов. Embarcadero добавил Unicode в свою версию Delphi 2009 и отлично поработал над этим. Этого было достаточно, чтобы наконец предложить мне перейти на Delphi 4, который я использовал 10 лет.
Языки Java и .NET, как указывали другие комментаторы, хотя строки Java - это UTF-16, а не UCS или UTF-8. (В то время это казалось разумной идеей! Теперь ясно, что лучше использовать UTF-8 или UCS.) И Python 3 действительно является другим, несовместимым языком с Python 1.x и 2.x, поэтому он тоже подходит.
Языки Plan9 примерно в 1992 году были, вероятно, первыми, кто сделал это: их диалект C, rc
, Alef, mk
, ACID и т. Д., Все были с поддержкой Unicode. . Они использовали очень простой подход: все, что не было ASCII, было символом идентификатора. См. Их статью от 1993 г. по этому поводу.
Я не знаю, насколько далеко это зашло в других языках, но забавная вещь в C # заключается в том, что это не только среда выполнения ( строка
класс и т. д.) поддерживает unicode - но unicode полностью поддерживается в исходном коде:
using משליט = System.Object;
using תוצאה = System.Int32;
public class שלום : משליט {
public תוצאה בית() {
int אלף = 0;
for (int λ = 0; λ < 20; λ++) אלף+=λ;
return אלף;
}
}