fs读文件时用binary和utf8有什么区别?为什么默认不是binary?
发布于 9 年前 作者 rwing 4916 次浏览 最后一次编辑是 8 年前 来自 问答

如题,我发现有一个文本文件,用utf8读出来是乱码,但是确认是utf8格式的。 用binary却可以正常读出来,所以既然binary这么厉害,为什么默认不是binary而是utf8?

4 回复

没人理。。。。。。。。

binary没有utf8一说, 只有字符层面才有编码

同楼上,binary不是编码格式吧

  1. 简单点说,1字节=8二进制位,字符=不定个字节。最基础的ASCII码是给英文搞的,所以只有255(2^8 - 1)个,意味着8位,所以是1个字节,这就是为什么英文不会乱码的原因。但是中文等等不能表示的,只能扩展字节数来表示字符,所以长度不一,编码不对,乱码的事情也就经常发生。
  2. 至于你说的题目,不知道你程序怎么写的。binary是二进制字节流,编码对字节是透明的。如果文本不是UTF-8编码,用UTF-8读当然就不对了
回到顶部