Java中编码、乱码问题集锦(持续更新)

1、JSP页面中开头处pageEncoding的设置:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

 

2、最好在<head></head>中加上这句:

 

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

 

3、注意JSP文件本身的编码问题,可使用工具对文件进行格式转化成想要的格式,工具推荐:UltraEdit、EditPlus

 

    文件 --> 另存为... --> 选择编码格式为UTF-8

 

4、使用Servlet的doPost()方法接收表单的post方法传过来的数据时,可通过以下设置:

 

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

 

5、使用Servlet的doGet()方法接收表单的get方法传过来的数据时,可通过以下设置:

 

String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");

 

6、如果form表单中没有写明method或method方法为get时,提交到后台也会出现乱码。所以注意写上或改成post就可以了。

 

7、使用js向Java后台提交中文时一定要注意编码:

    前台js代码:

 

var url="....action?name='中文'";
encodeURI(encodeURI(url));

 

    后台Java代码解码:

name=URLDecoder.decode(request.getParameter("name"),"UTF-8");
 

8、Page-encoding specified in XML prolog (UTF-8) is different from that specified in page directive(utf-8)

 

原因:这是个很诡异的问题,不清楚真正的原因,貌似utf-8和UTF-8还有区别。

 

解决方法:将utf-8改成UTF-8或UTF-8改成utf-8,视情况而定。

 

你可能感兴趣的:(java,html,jsp,xml,servlet)