在内存方面,Unicode和ASCII有什么区别? Unicode和ASCII在内存中占用多少内存?我知道在Unicode中它取决于编码类型(UTF-8,UTF-16等...)。但我需要更深入的了解!
答案 0 :(得分:2)
简而言之,ASCII使用7位代码点(即7位唯一标识每个字符),其中使用21位代码点定义Unicode(0 hex 到10FFFF hex ,定义为17个65536/16位字符的平面,产生1,114,112个字符 - 最接近的2的幂是2 21 )。使用多少内存取决于它在内存中的编码方式(不一定与用于外部化文件中数据的序列化编码相同,通常是Unicode的UTF编码之一)。
实际上,ASCII在RAM中每个字节存储为一个字符,很少看到纯ASCII,特别是在美国之外 - 更常见的是看到ISO8859-1(完全兼容的8位编码)使用ASCII,但其他字符使用可用的额外位,例如某些欧洲国家需要的£和¡字符。
Unicode更复杂,表示方式也有很大不同:
Joel's article是这个主题的金读。