mybatis,控制层传入中文乱码--两种解决方式

本文介绍了在使用Swagger测试接口时遇到的参数乱码问题及解决方案。通过调整编码格式或将注解添加到RequestMapping中,可以有效解决乱码问题,确保接口正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  最近写了一个查询接口,利用swagger测试,发现没数据,后来拿sql直接去数据库查,哎??!!!怎么有数据,好吧debug,发现传入的参数乱码了。

方法一:

  于是乎我开始百度,找到了一个方法,比较麻烦。原理就是,把传进来的参数,从编码格式A(A是容器的默认编码格式),转换为UFT-8。上代码。

try {
    productName = new String(userName.getBytes("ISO-8859-1"), "UTF-8");
    paramMap.put("productName", productName);
} catch (UnsupportedEncodingException e){
    LOGGER.info("UnsupportedEncodingException:", e);
}

当然这里只粘贴了部分代码,userName就是传入的参数。

  果然成功了,参数一"ISO-8859-1" --代表你所用容器的编码格式,这时用的tomcat,参数二--"UTF-8"-代表,你希望参数,转换成那种编码格式。

   但是后来我觉得tomcat启动太慢,换用了jetty,jetty默认编码格式就是“utf-8”呀,还是用上边代码,把 "ISO-8859-1"转“UTF-8”,当然出问题了,那么,就方法二吧

 方法二:

  人呀,坐到什么位置是有原因的,技术总监出马,一个注解就解决,---produces="application/json;charset=utf-8",代码没啥技术难度,把注解加载RequestMapping后边就可以了,不贴那么多代码

@RequestMapping(value = "/getUserDetail", method = RequestMethod.POST, produces="application/json;charset=utf-8" )

  

转载于:https://www.cnblogs.com/coisini/p/9699829.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值