字符编码问题详解

发表于:2014-5-08 09:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:郭丽    来源:51Testing软件测试网原创

分享:
  前言:
  我所处的业务线主要使用的语言是Java,一般是用jboss或者tomcat装载之后通过界面访问,在平常的测试工作会遇到如下问题:由于jboss和tomcat编码或者Linux机器编码设置的问题总是会导致应用在加载之后,前端访问页面出现中文乱码或者中文搜索功能无效等问题;而与此同时,我自己所使用的测试脚本偏重于python/shell, 用vim编辑的时候,也经常会出现界面中文乱码的问题.面对以上问题,本文从以下两个角度阐述编码问题:
  1.项目中遇到的服务器加载应用乱码问题
  2.vim中遇到的乱码问题
  先简单的介绍下基本的编码(常用):
  ASCII:8位,最高位为0,共128个字符编码, 33个控制字符,95个可打印字符
  GB2312:16位,6000多个常用汉字, 对ASCII码的中文扩展
  GBK: 16位,2w+, 微软标准,适应于简繁体共存的环境
  GB18030:32位, 适用于任何中文
  UTF-8:针对Unicode的可变长度字符编码,使用一至六个字节为每个字符编码
  其中UTF-8的编码方式如下:
  
图1
      ......
  查看全文请点击下载:http://www.51testing.com/html/15/n-860515.html
  数据的发送端 - 浏览器
  浏览器会把URL或者POST提交的内容编码之后发送给服务器。
  网页中contentType("text/html;charset=gbk2321")的作用:告诉浏览器网页中的内容是什么编码的。
  通常在做表单提交时,浏览器会根据contentType的内容来对post提交的内容进行编码,然后才发送给服务器的。这里要注意: contentType是对http头中的信息,而不是meta中的类型的。
  Get请求 Get提交时不同的浏览器会对url进行不同编码格式的编码,有的是utf-8,有的是,gbk等。由于get方式提交的时候, 用户只输入了一个url请求,这时浏览器并没有什么编码可以参照,所以就是用了浏览器自身的编码方式。
  Post请求 服务器先前已经返回了网页给浏览器,所以post提交的时候,浏览器会更具网页的contentType来对数据进行编码。 post提交的时候,浏览器通常会根据contentType来对requestbody中的数据进行编码。
    ......
   查看全文请点击下载:http://www.51testing.com/html/15/n-860515.html
  版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号