NutzCN Logo
问答 表单提交出现乱码,编码有统一设置
发布于 2497天前 作者 西风微凉 3221 次浏览 复制 上一个帖子 下一个帖子
标签: nutzwk

用nutzwk,前端用的是easyui,表单提交出现乱码
编码有按照:http://nutzam.com/core/basic/encoding.html 设置

{
   "name": "æµ\u008bè¯\u0095ç\u0094¨æ\u0088·",
   "openId": "openIDxxxx",
   "note": "æµ\u008bè¯\u0095ç\u0094¨æ\u0088·æ\u0096°å¢\u009eç\u0099½å\u0090\u008då\u008d\u0095",
   "creator": 0,
   "modify_oper": 0,
   "id": 0,
   "isValid": 0
}

需要日志的,后面补上,请指点下,

18 回复

似乎转unicode了?

这个是页面端发送的json???

我转的

 @SLog(tag = "添加白名单", msg = "${args[0].name}:${args[0].openId}")
    public Object addDo(@Param("..") TmWhitelist obj) {
 		log.info("==========添加白名单==========\n" + Json.toJson(obj));
        try {
        	tmWhitelistService.insert(obj);
            return Result.success("system.success");
        } catch (Exception e) {
            return Result.error("system.error");
        }
    }

贴页面端的代码

@wendal

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<script type="text/javascript">
	$(function() {
		$('#roleAddForm').form({
			url : '${base}/platform/term/whitelist/addDo',
			method:"post",
			onSubmit : function() {
				progressLoad();
				var isValid = $(this).form('validate');
				if (!isValid) {
					progressClose();
				}
				return isValid;
			},
			success : function(result) {
				progressClose();
				var data = eval('(' + result + ')');  
				if (data.code==0) {
					parent.$.messager.alert('提示', data.msg, 'info');
					parent.$.modalDialog.openner_dataGrid.datagrid('reload');//之所以能在这里调用到parent.$.modalDialog.openner_dataGrid这个对象,是因为user.jsp页面预定义好了
					parent.$.modalDialog.handler.dialog('close');
				} else {
					parent.$.messager.alert('错误', data.msg, 'error');
				}
			}
		});
	});
</script>
<div class="easyui-layout" data-options="fit:true,border:false" >
	<div data-options="region:'center',border:false" title="" style="overflow: hidden;padding: 3px;" >
		<form id="roleAddForm" method="post">
			<table class="grid">
				<tr>
					<td>姓名</td>
					<td><input name="name" type="text" placeholder="请输入姓名" class="easyui-validatebox span2" data-options="required:true" value=""></td>
				</tr>
				<tr>
					<td>openId</td>
					<td><input name="openId" type="text" placeholder="请输入openId" class="easyui-validatebox span2" data-options="required:true" value=""></td>
				</tr>
				<tr>
					<td>备注</td>
					<td colspan="3"><textarea name="note" id="note" rows="3" cols="30" /></td>
				</tr>
			</table>
		</form>
	</div>
</div>

直接打出来的


log.info("==========添加白名单=====name=====\n" + obj.getName()); log.info("==========添加白名单xx===note=======\n" + obj.getNote()); [INFO ] 2017-05-27 10:47:37,062 co ?μ?èˉ???¨??· [INFO ] 2017-05-27 10:47:37,063 co ?μ?èˉ???¨??·?·????????????? [INFO ] 2017-05-27 10:47:37,065 co

启动日志发来看看,感觉是页面问题

看上去没啥问题, 打开chrome开发者工具,把ajax请求看看

我另建一个测试的项目是正常的
这是提交的信息

Request URL:http://localhost:8080/fzmbweb/platform/term/whitelist/addDo
Request Method:POST
Status Code:200 
Remote Address:[::1]:8080
Referrer Policy:no-referrer-when-downgrade
Response Headers
view source
Cache-Control:no-cache
Content-Type:text/plain;charset=UTF-8
Date:Sat, 27 May 2017 02:47:37 GMT
Transfer-Encoding:chunked
X-Powered-By:nutz/1.r.61-SNAPSHOT <nutzam.com>
Request Headers
view source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:148
Content-Type:application/x-www-form-urlencoded
Cookie:sid=7d4565a2-879d-482b-91b4-31242f4f23bb; kerbores=ZhMDpU3Sk16hpKR9udjNXyIsx2cI2st1eiVbTF+mkj7vRu7H40dmBXMlWlxyOxZ8PLQ5rSIIMj+ucMXGOICioY7ZXBKwjSPU
Host:localhost:8080
Origin:http://localhost:8080
Referer:http://localhost:8080/fzmbweb/platform/home
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
Form Data
view source
view URL encoded
name:测试用户
openId:xxcvcxvcxvcx
note:测试用户添加白名单

其他入口方法正常吗???

@wendal 新增 修改 提交的都会乱码,删除 查询都正常

我是说,带中文参数的其他入口方法

有一种可能性是shiro预读取了了,看文档里面的WhaleFilter,配置一下

查询有用中文参数,获取是正常的,好的,我先看下WhaleFilter

@wendal 加上WhaleFilter配置可以了,谢谢兽总!!
在MainModule有加@Encoding ,也是声明输入输出方式的编码,这是有先后的问题吗?

shiro有个坑, 如果session id不存在的话, 会读取表单. 表单数据一旦被读取过,后面的Filter就没法设置编码了

添加回复
请先登陆
回到顶部