注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

赵启鹏的博客

lonely@boy

 
 
 

日志

 
 

Servlet中乱码问题产生的原因以及解决方式  

2013-09-15 15:28:55|  分类: servlet/jsp |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1 乱码问题产生的原因
a 表单提交时 浏览器会对表单中的参数值按照表单所在的页面的编码格式进行编码
 比如 表单所在的页面打开时按照”utf-8“编码格式打开,则表单提交时,对表单中的
参数值按照”utf-8“去编码
b web服务器在默认情况下,会使用”iso-8859-1“去解码
因为编码格式和解码使用的格式不一样,所以会产生乱码

2
编码的基础知识
a java语言在内存当中保存的字符都会默认的使用unicode这种编码格式来保存
b 编码 将unicode编码格式对应的字节数组转换成某种本地编码格式(gbk,utf-8)
对应的字节数组
c 解码 将某种本地编码格式保存的字节数组转换成unicode编码格式对应的字节数组
如何解决乱码
方式一
1 保证表单所在的页面按照指定的编码格式打开
比如 对于html文件 添加
<meta http-equive="content-type" content="text/html;charset=utf-8">
2
让web服务器使用指定的编码格式去解码
request.setCharacterEncoding("utf-8");
注意  方式一只对post请求有效
方式二
保证表单所在的页面按照指定的编码格式打开
比如 对于html文件 添加
<meta http-equive="content-type" content="text/html;charset=utf-8">
2
String str = new String(str.getBytes("iso-8859-1"),"utf-8");
3servlet如何输出中文
response.setContentType("text/html;charset=utf-8");
该方法的作用
1 返回一个消息头 content-type 告诉浏览器 返回的数据类型和编码格式
2 通过response获得的流(out)会使用指定的编码格式对数据进行编码


  评论这张
 
阅读(31)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017