外部网络出现乱码,但是内部网络却正常显示问题

if (provinceName != null && !provinceName.equals("")) {
   try {
    ActionContext ctx = ActionContext.getContext();
    HttpServletResponse response = (HttpServletResponse)ctx.get(ServletActionContext.HTTP_RESPONSE);
    //以下三行必须要按顺序编写,不然会出现乱码,做开发的时候,发现使用内部局域网登录的时候,去掉第一句是没有乱码问题的,

     //但是到了用apache静态绑定的外部网络登录时,就会出现乱码,只有加上第一句才可以避免

 

//编码方式统一看这个http://blog.csdn.net/evildog/article/details/7440524
    response.setContentType("text/html;charset=GBK");//(1)
    response.setCharacterEncoding("GBK");//(2)
    PrintWriter out = response.getWriter();//(3)
    
    byte[] bs= provinceName.getBytes("GBk");//有编码乱码,需要转换
    String str_AreaName = new String(bs, "UTF-8");
    
    
    StringBuffer sql2 = new StringBuffer(" select distinct a.city from network_msg a ");
    sql2.append(" where a.province = '" + str_AreaName + "' and a.city is not null");
    List<String> list = getSessionPE().createSQLQuery(sql2.toString())
      .addScalar("CITY", Hibernate.STRING).list();
    
    StringBuffer cityNames = new StringBuffer();
    for (int i = 0; i < list.size(); i++) {
     cityNames.append(list.get(i));
     cityNames.append(",");
    }
//    byte[] bstemp=cityNames.toString().getBytes("UTF-8");
//    str_AreaName = new String(bstemp, "GBk");
//    out.print(str_AreaName);
    out.print(cityNames);
    return null;
    
    
   } catch (Exception e) {
    e.printStackTrace();
   }
   
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值