中文的字符编码集有: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>