从一开始就使用Unicode支持设计了哪些编程语言?
题
哪些广泛使用的编程语言是在支持Unicode的基础上设计的?
许多编程语言在后来的版本中添加了Unicode支持,但是从第一天开始就使用Unicode支持广泛使用哪种语言?
解决方案
Java可能是第一个获得全面支持Unicode的流行语言。
其他提示
基本上所有.NET语言都是Unicode语言,例如 C#和 VB.NET 。
Python 3中有许多重大变化,其中包括切换到所有文本的Unicode 。
所以 Python 并没有为Unicode设计,但是Python 3 是。
我不知道其他语言有多远,但C#的一个有趣之处在于,不仅运行时( string
类等)unicode意识到 - 但源代码完全支持unicode:
using משליט = System.Object;
using תוצאה = System.Int32;
public class שלום : משליט {
public תוצאה בית() {
int אלף = 0;
for (int λ = 0; λ < 20; λ++) אלף+=λ;
return אלף;
}
}
Google的 Go编程语言支持Unicode,可与UTF-8配合使用。
从一开始就用编程语言设计未来的Unicode支持非常困难。
Java是将其设计为语言规范的语言之一。但是,Java v1.0中的Unicode支持是不同的来自v5 和Java SDK的v6。这主要是由于最初设计语言时语言规范所适用的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中稍后添加的字符称为补充字符。 Java 5中通过 JSR-204 添加了对补充字符的支持; Java 5和6支持Unicode 4.0。
因此,如果不同的编程语言以不同的方式实现Unicode支持,请不要感到惊讶。
另一方面,PHP(!!)和Ruby在开始时没有内置Unicode支持。
PS:支持v5.1的Unicode将在 Java 7 一>
Java和.NET语言,正如其他评论者所指出的那样,尽管Java的字符串是UTF-16而不是UCS或UTF-8。 (当时,它似乎是一个明智的想法!现在显然UTF-8或UCS会更好。)Python 3实际上是Python 1.x和2.x中不同的,不兼容的语言,因此它也符合条件。
1992年左右的Plan9语言可能是第一个这样做的:他们的方言C, Perl&nbsp; 6 从头开始提供完整的unicode支持。 字符串,正则表达式和语法都基于字形操作,即使对于那些没有组合表示的代码点组合(对于那些情况,动态生成组合表示人工代码点)。 存在一种特殊的编码来处理未知编码的数据“utf8-c8”:这在可能的情况下假设为utf-8,但为不可编码的序列创建了人工代码点,允许它们在必要时进行往返。 rc
,Alef, mk
,ACID等等都是Unicode - 启用。他们采用了非常简单的方法,即任何非ASCII的都是标识符字符。请参阅他们的
(使用 Rakudo&nbsp; Perl&nbsp; 6编译器作为第一个实现) 一般概述
Unicode运营商
有时,首次设计时包含在语言中的功能并不总是最好的。
语言随着时间的推移而发生变化,许多语言已经变得臃肿,具有额外的功能,但不一定与最初包含的功能保持同步。
所以我只是抛弃你不应该对最近添加了Unicode的语言进行折扣的想法。它们的优点是可以在已经成熟的开发工具中添加Unicode,并且有机会在第一次就能正确完成。
考虑到这一点,我想确保将Delphi包含在这里,作为您的答案之一。 Embarcadero在其Delphi 2009版本中添加了Unicode,并在其上做了很好的工作。终于促使我从我使用了10年的Delphi 4升级就足够了。
Java使用Unicode字符集中的字符。
java和.net语言