哪些广泛使用的编程语言是在支持Unicode的基础上设计的?
许多编程语言在后来的版本中添加了Unicode支持,但是从第一天开始就使用Unicode支持广泛使用哪种语言?
答案 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是第一个实现)
字符串,正则表达式和语法都基于字形操作,即使对于那些没有组合表示的代码点组合(对于那些情况,动态生成组合表示人工代码点)。
存在一种特殊的编码来处理未知编码的数据&#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语言