您的位置:首页 > 其它

平常用的少,但是要彻底弄懂的知识

2016-07-06 09:54 288 查看
有些东西在写代码的时候,或许听说过,有过了解,但是当要深究的时候,感觉自己又不能说得很清楚,趁这段时间,比较空闲,就在这里用自我理解的方式,做一些小小的总结,也算是巩固学习吧。

字符编码

这个问题是一个老问题了,总是告诉自己要统一用utf-8编码,但是自己也不知道为什么,还有各种别的ansi gbk unicode 等等,这个东西也不是几句话就能说清楚的,反正我目前认为是有点懂了,为什么之前老同事告诫不要用记事本来做任何和代码打交道的编辑,因为记事本默认使用的编码格式是ansi,而如果用记事本的另存为功能保存为utf-8的文件其实也是有bom的。这就导致该方式保存的文件,默认会添加三个字符,会引起很多的问题。所以我们要用专业的编辑器来编写代码和配置文件,统一用utf-8格式,当然,大部分的编辑器的默认文件编码格式都是utf-8,这里说的是无bom的,也就是,你保存的是什么,就是什么。对于字符编码,总结一句话就是,用专业的编辑器,保存为utf-8格式。就没错了。我记得关于字符编码的讲解,之前在知乎上看到一位前辈阐述的非常好,但是我现在却找不到那篇文章了,以后找到干货,就一定要自己保存!!!!

二进制文件

之前总是纠结这个问题,比如看到一个文件,文件里面保存的是二进制,我就认为这个是一个二进制文件,不然就认为是一个文本文件。其实感觉也没错,一般情况下,我们都是保存的文本文件,用来阅读方便,但是有个时候,会有保存文件流的二进制的需求,比如游戏的一些资源,配置等。一直不知道怎么做到,后来发现就是在代码里面保存字符串流的二进制格式就行了嘛,那个时候也真的是笨得可以。当然如此保存的文件,打开读取的时候,就要以二进制形式打开咯。注意任何文件在计算机看来都是二进制的,其实文本文件只是给我们看得懂而已。

大小端

大小端问题讲的是,数据在内存中的存储顺序,数据的高字节存储在内存地址的高地址,就是小端存储,反之,就是大端方式,怎么理解呢,假如有这样的数据 short a = 0x1234;  显然a占据2个字节。假如该数据存储在内存地址为ox0001和ox0002两个地址单元,12是数据的高字节如果存在地址0001,就是大端存储。如果存在地址0002,就是小端存储,怎么说呢,反正我自认为大端存储,更符合自然规律。还记得当时学套接字的时候,就必须有一对函数叫做转换为网路字节序,和转换为主机字节序,那个就是为了处理这个问题的,不然各个计算机处理器都按照自己的规矩解析,就会乱码了。也不知道,那个时候发明计算机的人,为什么不统一好,免得这么多的麻烦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  杂项