java web应用开发中的汉字编码问题

正文:有效规避汉字无法正常显示

1.服务器接收请求数据

1.1  url方法接收数据时,仅靠以下三条语句是不够的(写在servlet中)

 request.setCharacterEncoding("utf-8");

 response.setCharacterEncoding("utf-8");

 response.setContentType("text/html;charset=utf-8");还需要st=new String(st.getBytes("ISO-8859-1"),"utf");来帮忙

比如servlet中获得表单提交的数据name

request.setCharacterEncoding("utf-8");

 response.setCharacterEncoding("utf-8");

 response.setContentType("text/html;charset=utf-8");

String name=request.getParameter(name);

name=new String(st.getBytes("ISO-8859-1"),"utf-8");

1.2 get方法接收数据时,修改tomcat的server文件,重设字符编码;

1.3 post方法接收数据时,以上语句即可


注:以上是我在做自己的项目时的经验总结,一定要注意,服务器在不同情况下接收数据的不同处理,细节很重要。

附:关于编码

     pageEncoding=“utf-8”与ContentType=“text/html;charset=utf-8”的比较分析:pageEncoding:设置JSP源文件和响应正文中的字符集编码。 contentType:设置JSP源文件和响应正文的字符集编码及MIME类型。可见,pageEncoding和contentType都可以设置JSP源文件和响应正文中的字符集编码。但也有区别:设置JSP源文件字符集时,优先级为pageEncoding>contentType。如果都没有设置,默认ISO-8859-1。设置响应输出的字符集时,优先级为contentType>pageEncoding。如果都没有设置,默认ISO-8859-1。一个JSP的源文件需要经过三个阶段,两次编码,才能完成一次完整的输出。(pageEncoding指定编码--utf8(.java文件)--utf8(.class文件)--contentType指定编码)

    request.setCharacterEncoding("utf-8");设置对客户端请求进行重新编码的编码方式;

    response.setCharacterEncoding("utf-8");设置对服务器响应进行重新编码的编码方式;

    response.setContentType("text/html;charset=utf-8");设置对服务器响应进行重新编码的编码方式,且确定浏览器对响应数据的处理办法;




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值