Unicode和ASCII的确切区别是什么?

ASCII共有128个字符(扩展集为256个)。

Unicode字符有大小规范吗?


当前回答

存储

给定的数字仅用于存储1个字符

ASCII⟶27位(1字节) 扩展ASCII⟶28位(1字节) UTF-8⟶最小28,最大232位(最小1,最大4字节) UTF-16⟶最小216,最大232位(最小2,最大4字节) UTF-32⟶232位(4字节)


使用情况(截至2020年2月)

其他回答

除了UTF是ASCII的超集之外,ASCII和UTF之间另一个很好的区别是在磁盘文件编码和数据表示以及随机内存中的存储方面。程序知道给定的数据应该被理解为ASCII或UTF字符串,方法是检测数据开头的特殊字节顺序标记代码,或者从程序员的意图假设数据是文本,然后检查它的模式,表明它是一种文本编码或另一种文本编码。

Using the conventional prefix notation of 0x for hexadecimal data, basic good reference is that ASCII text starts with byte values 0x00 to 0x7F representing one of the possible ASCII character values. UTF text is normally indicated by starting with the bytes 0xEF 0xBB 0xBF for UTF8. For UTF16, start bytes 0xFE 0xFF, or 0xFF 0xFE are used, with the endian-ness order of the text bytes indicated by the order of the start bytes. The simple presence of byte values that are not in the ASCII range of possible byte values also indicates that data is probably UTF.

还有其他一些字节顺序标记,它们使用不同的代码来表示数据应该被解释为以某种编码标准编码的文本。

ASCII and Unicode are two character encodings. Basically, they are standards on how to represent difference characters in binary so that they can be written, stored, transmitted, and read in digital media. The main difference between the two is in the way they encode the character and the number of bits that they use for each. ASCII originally used seven bits to encode each character. This was later increased to eight with Extended ASCII to address the apparent inadequacy of the original. In contrast, Unicode uses a variable bit encoding program where you can choose between 32, 16, and 8-bit encodings. Using more bits lets you use more characters at the expense of larger files while fewer bits give you a limited choice but you save a lot of space. Using fewer bits (i.e. UTF-8 or ASCII) would probably be best if you are encoding a large document in English.

Unicode问题的主要原因之一来自于许多非标准扩展ASCII程序。除非您使用的是微软和大多数其他软件公司使用的流行页面,否则您很可能会遇到字符显示为方框的问题。Unicode实际上消除了这个问题,因为所有的字符代码点都是标准化的。

Unicode的另一个主要优点是,在最大限度时它可以容纳大量字符。正因为如此,Unicode目前包含了大多数书面语言,而且还有空间容纳更多的语言。这包括典型的从左到右的脚本,如英语,甚至从右到左的脚本,如阿拉伯语。中文、日文和许多其他变体也在Unicode中表示。所以Unicode不会很快被取代。

为了保持与当时已经广泛使用的旧ASCII码的兼容性,Unicode被设计成前8位与最流行的ASCII码页相匹配。因此,如果使用Unicode打开ASCII编码的文件,仍然可以在文件中得到正确的字符编码。这促进了Unicode的采用,因为它减轻了对那些已经在使用ASCII的人采用新编码标准的影响。

简介:

1.ASCII uses an 8-bit encoding while Unicode uses a variable bit encoding.
2.Unicode is standardized while ASCII isn’t.
3.Unicode represents most written languages in the world while ASCII does not.
4.ASCII has its equivalent within Unicode.

摘自:http://www.differencebetween.net/technology/software-technology/difference-between-unicode-and-ascii/#ixzz4zEjnxPhs

存储

给定的数字仅用于存储1个字符

ASCII⟶27位(1字节) 扩展ASCII⟶28位(1字节) UTF-8⟶最小28,最大232位(最小1,最大4字节) UTF-16⟶最小216,最大232位(最小2,最大4字节) UTF-32⟶232位(4字节)


使用情况(截至2020年2月)

ASCII定义了128个字符,对应于数字0-127。Unicode定义了(小于)221个字符,类似地,这些字符映射到数字0-221(尽管目前不是所有的数字都被分配了,有些是保留的)。

Unicode是ASCII的超集,数字0-127在ASCII中的含义与在Unicode中的含义相同。例如,数字65的意思是“拉丁大写字母‘A’”。

因为Unicode字符通常不适合一个8位字节,所以有许多方法将Unicode字符存储在字节序列中,例如UTF-32和UTF-8。

java提供了对Unicode的支持,即它支持所有世界范围的字母。因此,java中的char的大小是2字节。和范围是0到65535。