前后台传中文乱码问题改成UTF-8
来源:互联网 发布:数据库 id冗余名称 编辑:程序博客网 时间:2024/05/18 03:59
post方式提交:
页面:<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
servlet::response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
tomcat的server.xml: 加上 URIEncoding="utf-8"
<Connector port="8008" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="utf-8"
xmlns="default namespace"/>
get方式:需要进行编码与解码
页面:为何编码两次,原因未知
<input type="button" value="查询" onclick="search1();" />
<script>
function search1(){
//get 方式提交,编码
location.href=uri + "/bookServlet?action=searchByNum"+"&queryNum="+ encodeURI(encodeURI(num));
}
</script>
servlet:String queryNum = java.net.URLDecoder.decode(request.getParameter("queryNum"), "UTF-8");
--------文件上传时---郁闷了好久---------------------------
jsp页面form 添加 enctype="multipart/form-data"
<form action="upload.do" method="post" enctype="multipart/form-data">
<input type="text" name="filename"/>
<input type="file" name="pic"/>
<input type="submit" value="上传" />
</form>
servlet端 需要进行改码 new String(item.getString().getBytes("ISO-8859-1"), "UTF-8")
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024); // yourMaxMemorySize
ServletFileUpload upload = new ServletFileUpload(factory);
List<?> items = null;
try {
items = upload.parseRequest(request);
} catch (FileUploadException e1) {
e1.printStackTrace();
}
Iterator<?> iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
// 整个表单的所有域都会被解析,要先判断一下是普通表单域还是文件上传域
if (item.isFormField()) {
//表单文本域
System.out.println("form field:"+item.getFieldName()+"="+new String(item.getString().getBytes("ISO-8859-1"), "UTF-8"));
String name = item.getFieldName();
String value = new String(item.getString().getBytes("ISO-8859-1"), "UTF-8");
System.out.println(name + ":" + value);
} else {
//文件上传域
String fieldName = item.getFieldName();
String fileName = item.getName();
int start = fileName.indexOf('.');
String extName = fileName.substring(start);
System.out.println(extName);
String contentType = item.getContentType();
boolean isInMem = item.isInMemory();
long sizeInBytes = item.getSize();
System.out.println(fieldName + ":" + fileName);
System.out.println("类型:" + contentType);
System.out.println("内存是否存在:" + isInMem);
System.out.println("文件大小" + sizeInBytes);
File uploadedFile = new File("d:\\temp\\" + fileName);
try {
item.write(uploadedFile);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
做项目时遇到,亲测有效
- 前后台传中文乱码问题改成UTF-8
- Javaweb前后台传中文出现乱码问题
- ajax向后台传中文乱码问题
- 解决JS向后台传中文参数乱码的问题
- 前后台中文乱码问题
- js 传中文乱码问题
- js传中文乱码问题
- request传中文乱码问题
- URL传中文乱码问题
- URL传中文乱码问题
- url传中文乱码问题
- url路径参数带中文的乱码解决(前后台均为UTF-8)
- VS中文乱码,改成UTF-8
- 关于前后台汉字乱码问题
- Spring解决前后台乱码问题
- Cookie前后台使用乱码问题
- spring遇到jsp向后台controller传中文后乱码问题
- Jsp页面通过href拼接url向后台传中文乱码问题
- GitHub 优秀的 Android 开源项目
- 聚集索引与非聚集索引
- Oracle11g ORA-12541
- 重写ToString()以实现定制化输出字符串
- 扫描识别系统能干些什么?
- 前后台传中文乱码问题改成UTF-8
- 微信支付-扫码支付-原生支付-统一下单-参数说明
- Activemq的Queue发送和接收的例子
- shareData
- MySQL utf-8 插入中文出错 解决办法
- Masonry介绍与使用实践:快速上手Autolayout
- 自定义控件(9)---Canvas的save、restore、saveLayer、saveLayerAlpha
- cassandra 学习之旅<一> 初体验
- IntelliJ IDEA导入项目部署导致磁盘被占满