从一开始就使用Unicode支持设计了哪些编程语言?

时间:2009-09-12 21:41:43

标签: unicode programming-languages localization internationalization language-design

哪些广泛使用的编程语言是在支持Unicode的基础上设计的?

许多编程语言在后来的版本中添加了Unicode支持,但是从第一天开始就使用Unicode支持广泛使用哪种语言?

12 个答案:

答案 0 :(得分:32)

Java可能是第一个获得全面支持Unicode的流行语言。

答案 1 :(得分:31)

基本上所有.NET语言都是Unicode语言,例如 C# VB.NET

答案 2 :(得分:19)

Python 3中有许多重大变化,其中包括切换到Unicode for all text

所以 Python 并没有为Unicode设计,但是Python 3 是。

答案 3 :(得分:12)

我不知道其他语言有多远,但C#的一个有趣之处在于,不仅运行时string类等)知道unicode - 而且源代码完全支持unicode:

using משליט = System.Object;
using תוצאה = System.Int32;
public class שלום : משליט  {
    public תוצאה בית() {
        int אלף = 0;
        for (int λ = 0; λ < 20; λ++) אלף+=λ;
        return אלף;
    }
}

答案 4 :(得分:9)

Google的Go programming language支持Unicode,可与UTF-8配合使用。

答案 5 :(得分:6)

从一开始就用编程语言设计未来的Unicode支持非常困难。

Java是将其设计为语言规范的语言之一。但是,Java is different from v5的v1.0和Java SDK的v6中的Unicode支持。这主要是由于最初设计语言时语言规范所适用的Unicode版本。 Java尝试跟踪每个主要版本的Unicode标准中的更改。

JLS的早期实现可以声称支持Unicode,主要是因为Unicode本身支持65536个字符(Java支持Unicode 1.1的v1.0,Java v1.4支持Unicode 3.0),它与所采用的16位存储空间兼容由人物组成。随着Unicode 3.1的变化 - 它是一个不断发展的标准,通常在每个版本中添加更多字符。 3.1中稍后添加的字符称为supplementary characters。 Java 5中通过JSR-204添加了对增补字符的支持; Java 5和6支持Unicode 4.0。

因此,如果不同的编程语言以不同的方式实现Unicode支持,请不要感到惊讶。

另一方面,PHP(!!)和Ruby在开始时没有内置Unicode支持。

PS:支持v5.1的Unicode将在Java 7中进行。

答案 6 :(得分:5)

Java和.NET语言,正如其他评论者所指出的那样,尽管Java的字符串是UTF-16而不是UCS或UTF-8。 (当时,它似乎是一个明智的想法!现在显然UTF-8或UCS会更好。)Python 3实际上是Python 1.x和2.x中不同的,不兼容的语言,因此它也符合条件。

1992年左右的Plan9语言可能是第一个这样做的:他们的方言C,rc,Alef,mk,ACID等都是启用Unicode的。他们采用了非常简单的方法,即任何非ASCII的都是标识符字符。看看他们的paper from 1993 on the subject.(这是发明UTF-8的项目,这意味着他们可以以非常兼容的方式完成这项工作,特别是在他们的所有程序中没有管道二进制文本。)

支持非ASCII标识符的其他语言包括当前的PHP。

答案 7 :(得分:3)

Perl 6从头开始完全支持unicode (Rakudo Perl 6 compiler是第一个实现)

General overview

Unicode operators

字符串,正则表达式和语法都基于字形操作,即使对于那些没有组合表示的代码点组合(对于那些情况,动态生成组合表示人工代码点)。

存在一种特殊的编码来处理未知编码的数据&#34; utf8-c8&#34;:这在可能的情况下假设为utf-8,但为不可编码的序列创建了人工代码点,允许它们在必要时进行往返。

答案 8 :(得分:2)

答案 9 :(得分:1)

有时,首次设计时包含在语言中的功能并不总是最好的。

语言随着时间的推移而发生变化,许多语言已经变得臃肿,具有额外的功能,但不一定与最初包含的功能保持同步。

所以我只是抛弃你不应该对最近添加了Unicode的语言进行折扣的想法。它们的优点是可以在已经成熟的开发工具中添加Unicode,并且有机会在第一次就能正确完成。

考虑到这一点,我想确保将Delphi包含在这里,作为您的答案之一。 Embarcadero在其Delphi 2009版本中添加了Unicode,并在其上做了很好的工作。终于促使我从我使用了10年的Delphi 4升级就足够了。

答案 10 :(得分:-1)

Java使用Unicode字符集中的字符。

答案 11 :(得分:-1)

java和.net语言