1.)C#和Java Unicode有什么区别?
2.)C ++ Unicode仅限于Windows应用程序吗?
3.)我是否总是必须添加与通常不同的特定C ++代码包才能在C ++中使用Unicode?
4.)所有平台上支持哪种Unicode语言?
5.)Microsoft是否启动了这种Unicode趋势,或者除了从头开始支持Unicode的.NET和Java之外还有其他任何旧的Unicode语言吗?
答案 0 :(得分:5)
Unicode未绑定到编程语言。您可能需要阅读this以清除问题。
答案 1 :(得分:3)
我是日本开发人员。我试着回答你的问题。
1.)C#和Java Unicode有什么区别?
这个问题很难回答。当我们使用UNICODE时,有 我们必须考虑的许多方面,例如字体支持,本机代码映射,输入法 ...
简单的答案是:C#和Java(以及C / C ++)都在内部使用UTF-16。 因此它们几乎相同。我们没有问题可以使用UNICODE。
2.)C ++ Unicode仅限于Windows应用程序吗?
C / C ++标准将wchar_t指定为UNICODE字符。您可以将wchar_t与任何C / C ++编译器一起使用。
3.)我是否总是必须添加与通常不同的特定C ++代码包才能在C ++中使用Unicode? p>
为了正确处理UNICODE,您需要使用宽字符版本库。 在C,wprintf,wscanf,...在C ++中,std :: wcout,std :: wcin,.... (Visual C ++有一个UNICODE编译选项。你需要在编译前检查它)
4.)所有平台上支持哪种Unicode语言?
如果这意味着'UTF-8'/'UTF-16',正如我已经提到的那样,该平台使用UTF-16作为内部代码。但是当应用程序从外部获取数据或将数据放到外部时,可能需要将UTF-16转换为UTF-8或本机编码。
在日本,我们通常在Windows上使用Shift-JIS编码(我们的一种原生字符编码)。但是最近许多实用程序(如文本编辑器)支持UTF-16 / UTF-8 我们可能不需要转换。
5.)Microsoft是否开始使用这种Unicode趋势,或者除了从头开始支持Unicode的.NET和Java之外还有其他任何旧的Unicode语言吗?
我认为Windows 2000将是第一个内部使用UNICODE的Windows,Win95 / 98使用本机字符编码(日语Win95 / 98内部使用Shift-JIS)。
答案 2 :(得分:2)
Unicode是一种独立于C#,Java或任何其他编程语言的标准。
没有
如果你的编译器/系统支持unicode,你就不会这样做:
ofstream fout("aaa.txt");
fout << "Hi, привет\n";
英
没有。自从时间开始以来,C语言支持Unicode。
编辑:有关C ++中的可移植Unicode解决方案,请参阅Unicode answers。
答案 3 :(得分:0)
1.)C#和Java Unicode有什么区别?
Unicode与两种语言/环境分开。这两个环境都支持,当在其中一个Unicode 编码中读取或写入文本时,重要的是它们都遵循Unicode Consortium的规范。
2.)C ++ Unicode仅限于Windows应用程序吗?
没有
3.)我是否总是必须添加与通常不同的特定C ++代码包才能在C ++中使用Unicode? p>
抱歉,不知道这个。 (编辑:ebungalobill says no,如果编译器和环境支持它并且你正在使用现代结构。)
4.)所有平台上支持哪种Unicode语言?
你可能意味着什么编码。我不知道,但我希望平台支持或不支持流行的编码(UTF-8和UTF-16)。
如果你的意思是人类语言,它将是英语和大多数其他西方语言,但在此阶段对东方语言的支持也很强大。
5.)Microsoft是否开始使用这种Unicode趋势,或者除了从头开始支持Unicode的.NET和Java之外还有其他任何旧的Unicode语言吗?
嗯,Java在很多时候都早于.Net。但Unicode早于他们。
建议阅读(按顺序):
答案 4 :(得分:0)
1.)Unicode与语言无关
2)没有。见#1
3.)不知道。抱歉。
4.)如果你的意思是Unicode版本? UTF-8
5.)不知道。遗憾。
答案 5 :(得分:0)
Unicode是一种将数值赋给可见字形的国际标准。还有标准(UTF-8,UTF-16等)使用有序的字节值列表来表示这些数值。注意,还有许多其他标准用于为字形分配数值,例如ASCII,USASCII,各种Microsoft CodePage映射,更不用说非英语字符集的映射。 这些值不是编程语言依赖项,unicode值独立于c#,C ++或Java。 与早期的语言(如C和C ++)不同,字符的unicode表示是内置于Java的,因此您不必执行任何“特殊”操作来支持unicode。也就是说,您仍然可以区分字符的unicode“值”以及数据文件中“值”的表示方式。例如,包含ASCII字符的数据文件可以读入Java字符串,但您必须告诉Java您正在读取包含ASCII映射的文件,而不是包含其他映射的文件。 (顺便说一下,UNICODE人员这么简单,因为ASCII和UNICODE中前128个ASCII字符的映射是相同的,而且UTF-8中这128个字符的表示也等同于ASCII - 因此,任何ASCII数据都可以被视为UTF-8编码的UNICODE)。