IDEA部署Tomcat应用所有接口中文乱码

解决问题的思路:

1、分析比对http请求头,contentType等设置

2、前段编码,后端解码,这个方式比较落麻烦,凡是有中文乱码的地方都要进行解决

3、修改Tomcat的默认编码,tomcat8以下默认编码是"iso8859-1",tomcat8默认编码是“UTF-8”

<Connector port="8080" protocol="HTTP/1.1"
               URIEncoding="UTF-8" 
               connectionTimeout="20000"
               redirectPort="8443" />

4、查看应用的web.xml默认编码是否是"UTF-8"以下是后端强制转码配置

<filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value><!-- 强制进行转码 -->
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>

 按照此种写法HttpServletRequest和HttpServletResponse在控制层是不可缺少的,否则有乱码

/**数据透传下发记录*/
    @RequestMapping("sendTransparentinfoSendCmd")
    public Object sendTransparentinfoSendCmd(TransparentinfoSendlog transparentinfoSendlog,HttpServletResponse response,HttpServletRequest request){
        if(transparentinfoSendlog.getVehicleId()==null){
            // 未选择车辆
            return setReturnMap(false, HttpCode.NO_SELECT_VEHICLE.value());
        }
        String sim=terminalService.findMobileCodeByVehicleId(transparentinfoSendlog.getVehicleId()+"");
        if(sim==null||sim.equals("")){
            return setReturnMap(false, HttpCode.ORDER_SEND_NO_SIM.value());
        }
        if(transparentinfoSendlog.getEnterpriseId()==null){
            // 没有公司ID
            return setReturnMap(false, HttpCode.BAD_REQUEST_ENTERPRISE.value());
        }

        // 存储数据透传下发发送日志
        OrderInfo orderInfo=new OrderInfo();
        orderInfo.setId(com.cvnavi.util.WebUtil.getPK());
        User user = WebExecutionContext.getUser();
        orderInfo.setUserId(user.getId());//设置userId
        // 设置指令ID
        transparentinfoSendlog.setOrderId(orderInfo.getId());
        boolean flag=iTransparentinfoService.insertTransparentinfoSendlog(transparentinfoSendlog);
        if(!flag){
            return setReturnMap(false, HttpCode.BAD_REQUEST.value());//请求错误
        }
        // 发送指令到网关
        orderInfo=iOrderInfoService.sendTransparentinfoSendlogCmd(orderInfo,transparentinfoSendlog);
        if(orderInfo==null){
            return setReturnMap(false, HttpCode.BAD_REQUEST.value());//请求错误
        }
        if("0".equals(orderInfo.getStatus())){
            return setReturnMap(false, HttpCode.NO_VEHICLE_ONLINE.value());//车辆不在线
        }else if("-1".equals(orderInfo.getStatus())){
            return setReturnMap(false, HttpCode.ORDER_SEND_FAIL.value());//指令发送失败
        }
        return setReturnMap(true, HttpCode.OK.value());
    }

 

转载于:https://www.cnblogs.com/boonya/p/7880465.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值