数据经过网络传输都是以字节为单位的,所以所有的数据都必须能够被序列化为字节。在Java中数据要被序列化,必须继承Serializable
接口。
如果把整形数字1234567当做字符来存储,则采用UT-8编码将会占用7个字节,采用UTF-16编码节昂辉占用14个字节,但是把它当做int类型的数字来存储时,则只需4个字节。所以,看一段文本的大小,只看字符本身的长度是没有意义的,即使是一样的字符,采用不同的编码最终存储的大小也会不同,所以从字符到字节一定要看编码类型
另外一个问题,你是否考虑过当我们在计算机中的某个文本编辑器里输入某个汉子时,它到底是怎么表示的。我们知道,在计算机里所有的信息都是以0和1表示的,name一个汉子,它到底是多少个0和1呢。我们能够看到的汉字都是以字符形式出现的,例如在Java中,“淘宝”两个字符在计算机中的十进制数值是28120和23453,16进制是6bd8和5d9d,即这两个字符是由这两个数字唯一表示的。在Java中一个char是16个bit,相当于两个字节,所以,两个汉字用char表示,在内存中会占用相当于4个字节的空间。
把这两个问题搞清楚后,我们看一下在Java web中哪些地方可能会存在编码转换。
用户从浏览器端发起一个Http请求,需要存在编码的地方是
U