zoukankan      html  css  js  c++  java
  • java解决中文乱码的几种写法

    工作中总会遇到中文乱码问题,以导出文件,文件名称是中文的话,下载下来的文件名称会乱码问题,总结了几种解决文件名乱码的写法,仅供参考。

     首先定义一个汉语字符串

    String zhName = "错误码模板";

    一、java.net.URLEncoder.encode(zhName, "UTF-8");

    这种写法 在谷歌浏览器 、 IE浏览器上,表示很好用。直接解决掉了乱码问题。

    但是在火狐浏览器上,导出的文件名没有解码,如下图。

    二、new String(zhName.getBytes("UTF-8"),"iso-8859-1");

    第二种写法是实例化String,修改编码格式。

    经试验,谷歌浏览器,火狐浏览器,都好用。但是IE浏览器又乱码了。

    此时有些凌乱了,如何同时兼容三个浏览器呢。接下来上大招。

    三、

    同时兼容chrome Firefox IE 三个浏览器写法
    String zhName = "错误码模板";
    String header = request.getHeader("User-Agent").toUpperCase();
    if (header.contains("MSIE") || header.contains("TRIDENT") || header.contains("EDGE")) {
    zhName = URLEncoder.encode(zhName, "utf-8");
    zhName = zhName.replace("+", "%20"); //IE下载文件名空格变+号问题
    } else {
    zhName = new String(zhName.getBytes(), "ISO8859-1");
    }
    response.setHeader("Content-Disposition", "attachment;filename="+zhName+ ".txt");

    以上,哈哈完美兼容三个浏览器。问题解决。

    wuli哥哥是傻帽
  • 相关阅读:
    ObjectiveC字符串处理
    分享 10 个 jQuery 的语言翻译插件
    30 个实用的 jQuery 选项卡/导航教程推荐
    iphoneCocos2D游戏开发
    cocos2d和unity3d的比较
    将NSString转换编码集变为GBK或GB2312
    超过 40 款很有用而且很新的 jQuery 插件
    表格单元的表现形式
    ShareKit
    UI Prototype Design IDE( 界面原型设计工具 )
  • 原文地址:https://www.cnblogs.com/shiyuetaozi/p/7521623.html
Copyright © 2011-2022 走看看