更改MySQL数据库的编码为utf8mb4
- 创建表格设置表格的编码为utf8mb4,示例:
create table student(NO char(20),name varchar(20),primary key(NO))ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
Eclipse创建web在tomcat上不能发布
解决办法: Eclipse中的Web项目自动部署到Tomcat
Javaweb开发中响应乱码和请求乱码
解决方法:
//=======================
//tomcat6,7默认编码为iso8859-1
//========================
1.post请求
/*
* 这个方法只对请求的实体内容起作用,因GET提交的请求参数在地址
* 栏 后,并不在实体内容中,所以这个方法对于GET提交无效
*/
request.setCharacterEncoding("utf-8");
//设置编码后,通过该方法取参数
request.getParameter("key");
2.get请求
/*
服务器用iso8859-1来解析,造成了乱码,由于iso8859-1无法正确
显示这些字符,所以显示为了“?”,但是底层的编码仍然是正确的。所
以,我们可以通过如下方式解决:
*/
addr=request.getParameter("key");
byte[] bs = addr.getBytes(“iso8859-1”);//将乱码解析回二进制数据
addr = new String(bs,”utf-8”);//按照正确的utf-8解码得到正确的字符
//*******************************************
备注:当我们通过request.getInputStream()或request.getReader()方
法获取参数时,由于表单提交的参数都会先进行UrlEncoding编码,所以
在获取时,要进行UrlEncode解码 。而且以上两个方法只能获取到请求
的实体的内容,所以对get请求是无用的。
//以下示例代码是在post请求下测试的,有效
String line;
BufferedReader reader=request.getReader();
while((line=reader.readLine())!=null){
System.out.println(URLDecoder.decode(line));
}
网友评论