楔子

有一次 一个人问 有什么编码能使用一个字节存储中文 当然 结果是否定的 中文没法做到一个字节存储

可是 如果是压缩呢 于是有此测试

结果

直接放结果 数据单位是字节

文章 (中文/全部字数)/编码GB2312UTF-16注1UTF-8注2GZIPed UTF-16GZIPed UTF-8
Wiki的【量子力学】词条的源码 (13135/32873)43,782注366,43659,11127,49127,282
《共产党宣言》 (30352/35993)62,59464,63492,67032,55438,593

注1 UTF-16-LE-DOS 这也就是Windows记事本的Unicode保存出来的编码
注2 UTF-8-UNIX
注3 此编码缺一些繁体字,用相应的简化字代替。

结论

  • 对于中英文混杂的情况 UTF-8在大小上占优势 对于中文占主要的情况 UTF-16占优势
  • 压缩后 UTF-8和UTF-16在大小上区别不明显
  • 对于大段内容(至少几万字罢) 靠压缩能做到一个字节一个汉字