血与泪的教训: JavaWeb中文乱码问题整合


中文的字符编码集有:GB2312,GB18030,UTF-8(适用于中文,但偶尔会出错,前面两个比较有保障)



  • Html页面乱码问题
    • 在标签中设置
    • 如图(任选一种,图片只为展示)血与泪的教训: JavaWeb中文乱码问题整合_第1张图片
    • 修改html文件编码格式
    • 查看是否使用了springmvc+freemaker,若使用了这两者,请往下看。

  • 后端接受的String类型参数乱码问题(假定接受的String变量名为oldString)
    • 一般传到后端的编码为ISO-8859-1,所以可用String类转换(下面两种转换请分别测试)
    • String newString = new String(oldString.getByte(“ISO-8859-1”),"GB2312");
    • String newString = new String(oldString.getByte("ISO-8859-1"),"UTF-8");
    • 设置Filter,在Filter的doChain方法中加入 request.setCharacterEncoding("UTF-8") 或 request.setCharacterEncoding("GB2312");
    • 终极无奈狗屎方法:将所有需要传到后端的String提前用md5加密转换为纯英文数字!!去他的中文问题!!!!(如下载文件路径,传过来的中文一定是ISO-8859-1编码的乱码,那么在上传文件的时候,直接将文件名md5加密再放到数据库中即可)



  • JS alert confirm 中文乱码问题
    • 修改js文件编码格式~!!!!!!!!!!(具体百度 eclipse修改js文件编码)
    • 导入js文件时设置charset: 注:charset中的值应与js文件编码一致!!!
  • Servlet收到的Request的Param(即请求参数)乱码问题,需设置Request的Charset
    • request.setCharacterEncoding("GB2312");
    • out.println()乱码以及response同理,需设置 response.setCharacterEncoding("GB2312")
  • JSP页面中文乱码问题
    • 配置page属性:<%@ page pageEncoding="GB2312"%>
  • Springmvc采用freemaker中文乱码问题
    • 页面编码设置
    • spring配置文件中需设置好freemaker的默认编码:<bean id="FreeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">


你可能感兴趣的:(中文乱码)