据我所知,UTF-16和UTF-32的主要区别是,UTF-32总是每个字符四个字节,而UTF-16有时是一个字节,有时是每个字符两个字节。这使UTF-16的优点是占用的内存比UTF-32少,但UTF-32具有n个字符恒定时间访问的优点。
我的问题是,如果您可以像在UTF-16中那样用最多两个字节来表示每个unicode字符,那么为什么没有一种总是使用两个字节来编码每个字符的格式呢?这种格式,虽然内存比UTF-16稍贵,但严格来说比UTF-32更好,因为它允许在使用一半内存的同时保持时间访问。
我在这里有什么误会?
发布于 2014-05-29 13:35:56
UTF-16对平面0中的字符使用两个字节,对任何其他字符使用基本多语言平面(BMP)、U+0000...U+FFFF和四个字节。不能以两个字节表示所有Unicode字符。
https://stackoverflow.com/questions/23934389
复制相似问题