彻底解决中文乱码问题

中文乱码可能出现的原因:

Tomcat 服务器:

MySQL数据库:

JSP:

1、编码问题(Get\POST

①html页面:浏览器会根据<http header:content-type=text/html; charset=”UTF-8”>的值来决定用什么encoding(编码),离线的本地html要在meta中指定,不指定会采用默认的编码<meta http-equiv=”Content-Type”content=”text/html”; charset=”UTF-8”>

②Request request.setCharacterEncoding(“UTF-8”)应用于通过getParameter()获取字符串,只对POST有效。必须设置在servletgetParameter()方法被调用之前,原因是:只有在第一次调用getParameter()方法时会查询encoding编码格式,后续的getParameter将不再查询编码格式。

对于GET提交,get提交的内容存在URL中,需在Tomcatserver.xml设置,在Connector标签中设置生成URI时的编码格式 URIEncoding=”UTF-8”(个人理解为 针对URI这一特殊类型数据,在server中统一设置编码格式,不管是在JSP还是Servlet中出现,都使用统一的解码方式,避免了乱码的发生)。默认为ISO8859-1

③Resopnse response.setContentType(“text/html”;charset=”UTF-8”)是指定HTTP响应的编码,同时指定浏览器(JSP)的显示编码,显示编码不一定在JSP中有效果,因为JSP中设置的编码格式优先级更高。

response.setCharacterEncoding(“UTF-8”)的作用是设置HTTP的响应编码,设置应在getWriterresponse被提交之前。(个人理解为 此编码的设置是针对要返回的数据进行编码生成response,再返回)

JSP<%@page ContentType=”text/html;charset=UTF-8”%>

<%@page pageEncoding=”charset=UTF-8”%>

以上两种编码只有一种有效,用于设置 页面的显示编码。

如果页面中使用include标签导入了其他的JSP<%@ include file=”BB.jsp”%>设置的BB.jsp中不能再设置编码,<jsp:include page=”BB.jsp”/>设置,BB.jsp中还可以设置编码集。

对于URLURI的区别。请看:https://www.cnblogs.com/hust-ghtao/p/4724885.html

更多相关文章

  1. dos插入mysql乱码
  2. EntityFramework6连接MySql数据库 乱码问题
  3. PHP MYSQL 出现中文乱码的解决方案
  4. 从MM-DD-YYYY格式sql中获取月
  5. 如何从mysql datetime列返回转换后的时间格式?
  6. Mysql迁移由于字符集导致乱码的数据
  7. Php数据库为GoJs格式化json
  8. Mysql基础之字符集与乱码
  9. mysql中插入中文时显示乱码

随机推荐

  1. Android开发者e周报 第5期
  2. 转:Android前途分析
  3. Android四种启动Activity方式
  4. Android Apk加固的初步实现思路(dex整体加
  5. 关于android程序编写初级逻辑思考问题
  6. Android Socket 发送广播包的那些坑
  7. Android 面试题(2)
  8. Android(安卓)轮播图实现(新手易懂)
  9. [时间线]Android市场的发展
  10. android:layout_gravity 和 android:grav