服务器中的编码解码问题

什么是编码与解码

 1. 文字->(数字01代码):编码encode:就是把看得懂的内容,转换成看不懂的内容。
  2. (数字01代码) -> 文字 : 解码decode:就是把看不懂的内容,转换成看懂的内容。

服务器与浏览器交互时对数据的处理方式

服务器编解码

1.浏览器发送数据:
html使用的编码格式时utf-8,所以浏览器中输入了某一数据,浏览器会先将这个数据以utf-8作为编码表将它进行编码,然后把编码后的01数据发送到服务器

2.tomcat服务器的特点:
而tomcat服务器默认使用的是ISO-8859-1的编码表,因此当服务器接收到浏览器发送的01数据时,服务器会默认使用ISO-8859-1的编码表将其进行解码。

3.英文与标点不会乱码的原因:
因此就会出现我们常见的情况:ISO-8859-1与utf-8都是兼容ASCII码,因此从浏览器发送到服务器中属于ASCII码的内容是不会乱码,因为他们编解码都是按照ASCII码

4.汉字会出现乱码的原因:
ISO-8859-1不支持汉字,即使是GBK这种支持汉字的通过他们编码再使用utf-8编码也是会出现乱码,因为ISO-8859-1不支持汉字,没有汉字对应的编码表,GBK中同一个汉字对应的01代码与utf-8对应的01代码不一致,因为他们单个字符的占的字节数是不同的。

5.tomcat服务器接收数据:
当tomcat服务器接收到从服务器发来的01数据时,tomcat服务器会将它用ISO-8859-1编码表进行解码。因此这个01数据在浏览器中代表的是汉字时,那么tomcat用ISO-8859-1编码表解码后一定是一个乱码字符。

6.解决服务端乱码问题:
要想在服务器端获取的数据是一个表示正确的汉字,就需要把这个乱码的字符先用ISO-8859-1编码表编码成01数据,然后在通过utf-8编码表解码成对应的字符,然后存入服务器中字符串一个变量内。这个字符串显示的就是与浏览器相同的正常的汉字。

7.解决浏览器端乱码问题:
如果把在服务器端显示正常中文字符串发送给浏览器显示,也是一个乱码的结果,因为这个汉字字符串会先用ISO-8859-1编码表进行编码成为01数据之后发送给浏览器,浏览器会以utf-8编码表进行解码,那解码出来的肯定是一个乱码。
要想让浏览器显示出与服务器端一样的正常中文字符,需要在服务器端先把汉字字符串用utf-8的编码表进行编码,再用ISO-8859-1编码表进行解码得到一个乱码的字符串。
然后服务器在发送数据时会将这个乱码字符串先用ISO-8859-1编码表进行编码后发送到浏览器
l浏览器接收到这个01数据后使用utf-8进行解码,就可以得到一个正常的中文字符啦~~~

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值