idea中jsp文件引入JS打印中文乱码问题(全文件都设为UTF-8编码)

项目场景:普通Javaweb项目,jdk1.8,tomcat8.5

在这里插入图片描述

提示:
实训周机构的老师敲的电子商城,数据交互部分是jsp+el+ajax


问题描述:

使用el表达式获取域对象中的值,然后绑定了一个点击事件,引用了一个外部的js文件,js进行打印中文的时候出现乱码 ![在这里插入图片描述](https://img-blog.csdnimg.cn/89705860ee6c4f9ba082b6ad615b9764.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASmF2YV_lpKdHRw==,size_20,color_FFFFFF,t_70,g_se,x_16)
function buy(goodid){
	$.post("goods_buy", {goodsid:goodid,name:"卢本伟"}, function(data){
		if(data=="ok")
		{
		    alert("添加到购物车成功asd123");
			layer.msg("添加到购物车!data==ok", {time:800}, function(){
               location.reload();
            });
			return "添加到购物车成功asd123";
		}
		else if(data=="fail")
		{
            alert("添加到购物车失败");
            layer.msg("库存不足,请购买其他商品!data==fail", {time:800}, function(){
            });
		}

@WebServlet(name = "goods_buy",urlPatterns = "/goods_buy")
public class GoodsBuyServlet extends HttpServlet {
    private GoodsService gService = new GoodsService();
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Order o = null;
//        request.setCharacterEncoding("utf-8");
        String str = new String(request.getParameter("name").getBytes("iso-8859-1"), "UTF-8");
        System.out.println("传入的参数name:"+str);
//        $.post("goods_buy", {goodsid:goodid}, function(data){
        if(request.getSession().getAttribute("order") != null) {
            o = (Order) request.getSession().getAttribute("order");
        }else {
        o = new Order();
        request.getSession().setAttribute("order", o);
    }

        int goodsid = Integer.parseInt(request.getParameter("goodsid"));
        Goods goods = gService.getGoodsById(goodsid);
        if(goods.getStock()>0) {
            o.addGoods(goods);
            response.getWriter().print("ok");
        }else {
            response.getWriter().print("fail");
        }
    }

接受结果:
在这里插入图片描述


原因分析:

通过传参到后台,也是乱码,然后配置了过滤器,Request和response的字符集都设为utf8, 初步判定是js文件编码问题。

解决方案:

解决方法:第一种:直接更改js文件的文件编码,用记事本打开,另存为utf-8,但我这里不行,然后另存为带bom的utf8就能够解决。 第二种:直接在web.xml里面进行配置:[参考吧内老哥的帖子](https://blog.csdn.net/lihao19920629/article/details/51622692?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164036983116780271522195%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=164036983116780271522195&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-51622692.pc_search_result_control_group&utm_term=%E8%A7%A3%E5%86%B3%E5%BC%95%E5%85%A5JS%E4%B8%AD%E6%96%87%E4%B9%B1%E7%A0%81%E9%97%AE%E9%A2%98&spm=1018.2226.3001.4187)
    <jsp-config>
        <jsp-property-group>
            <display-name>HtmlConfiguration</display-name>
            <url-pattern>*.html</url-pattern>
            <page-encoding>UTF-8</page-encoding>
        </jsp-property-group>
        <jsp-property-group>
            <display-name>JspConfiguration</display-name>
            <url-pattern>*.jsp</url-pattern>
            <page-encoding>UTF-8</page-encoding>
        </jsp-property-group>
        <jsp-property-group>
            <display-name>JsConfiguration</display-name>
            <url-pattern>*.js</url-pattern>
            <page-encoding>UTF-8</page-encoding>
        </jsp-property-group>
    </jsp-config>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值