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


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



  • Html页面乱码问题
    • 在<head>标签中设置<meta charset="GB18030">或 <meta content="text/html;charset=GB18030">
    • 如图(任选一种,图片只为展示)
    • 修改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: <script src="xxxx" charset="GB2312"></script> 注:charset中的值应与js文件编码一致!!!
  • Servlet收到的Request的Param(即请求参数)乱码问题,需设置Request的Charset
    • request.setCharacterEncoding("GB2312");
    • out.println()乱码以及response同理,需设置 response.setCharacterEncoding("GB2312")
  • JSP页面中文乱码问题
    • 配置page属性:<%@ page pageEncoding="GB2312"%>
  • Springmvc采用freemaker中文乱码问题
    • 页面编码设置<meta name="content-type" content="text/html;charset=GB2312"> 或<meta charset="GB2312">
    • spring配置文件中需设置好freemaker的默认编码:<bean id="FreeMarkerConfigurer" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/"></property>
<property name="defaultEncoding" value="GB2312"></property>
</bean>
<bean id="FreeMarkerViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="suffix" value=".html"></property>
<property name="contentType" value="text/html;charset=GB2312"></property>
</bean>


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值