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

首先定义一个汉语字符串

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");

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

java解决中文乱码的几种写法的更多相关文章

  1. java 解决中文乱码

    //1.代码解决 public class LuanMa { public static String getNewString(String luanma){ String result = &qu ...

  2. java web 中有效解决中文乱码问题-pageEncoding与charset区别, response和request的setCharacterEncoding 区别

    这里先写几个大家容易搞混的编码设置代码: 在jsp代码中的头部往往有这两行代码 pageEncoding是jsp文件本身的编码contentType的charset是指服务器发送给客户端时的内容编码J ...

  3. URL传参中文乱码的一种解决方法

    中文乱码是由于,发送和接收方使用的编码解码格式不一致导致,以下是关于url传参解决中文乱码的一种方法,最后根据各种编码格式尝试解码,发现正确的解码格式 string strQueryString = ...

  4. 在PHP中PDO解决中文乱码问题的一些补充

    我的环境是appsver包, 在网上最常出现的解决中文乱码显示的代码是: 第一种:PDO::__construct($dsn, $user, $pass, array (PDO::MYSQL_ATTR ...

  5. java web过滤器实际应用(解决中文乱码 html标签转义功能 敏感字符过滤功能)

    转载地址:http://www.cnblogs.com/xdp-gacl/p/3952405.html 在filter中可以得到代表用户请求和响应的request.response对象,因此在编程中可 ...

  6. java解压多目录Zip文件(解决中文乱码问题)--转载

    原文地址:http://zhangyongbo.iteye.com/blog/1749439 import java.io.BufferedOutputStream; import java.io.F ...

  7. 04_过滤器Filter_02_Filter解决中文乱码问题

    [过滤器解决中文乱码问题实例] [工程截图] [web.xml] <?xml version="1.0" encoding="UTF-8"?> &l ...

  8. Web---演示servlet技术(servlet生命周期),解决中文乱码问题

    本节讲解决中文乱码问题的4种方法. 还有更好的方法,也就是用过滤器,这里就不演示了,博主目前也不会~呼♪(^∇^*)~过段时间才会学. servlet生命周期演示: index.jsp: <%@ ...

  9. 关于web.xml中配置Spring字符编码过滤器以解决中文乱码的问题

    当出现中文乱码问题,Spring中可以利用CharacterEncodingFilter过滤器解决,如下代码所示: <!-- Spring字符编码过滤器:解决中文乱码问题 --> < ...

  10. Javaweb 使用Servlet技术改写用户登录 使用Filter技术解决中文乱码

    先把实验3的jsp页面复制过来: WebContent->WEB-INF->lib下面的jar包8.0版本也要记得复制: Java Resources->src下的 cn.edu.h ...

随机推荐

  1. windows下使用route添加路由

    1,首先在"运行"窗口输入cmd(按WIN+R打开运行窗口),然后回车进入命令行. 2,在命令行下输入route命令,会有对应的提示信息. ROUTE [-f] [-p] [-4| ...

  2. ElasticSearch 实现分词全文检索 - 复合查询

    目录 ElasticSearch 实现分词全文检索 - 概述 ElasticSearch 实现分词全文检索 - ES.Kibana.IK安装 ElasticSearch 实现分词全文检索 - Rest ...

  3. 65.C++的输入流和输出流

    1.流的概念和流类库的结构   程序的输入指的是从输入文件将数据传送给程序,程序的输出指的是从程序将数据传送给输出文件.   C++输入输出包含以下三个方面的内容:   对系统指定的标准设备的输入和输 ...

  4. scrcpy软件的使用

    一.scrcpy软件介绍: scrcpy是通过adb调试的方式来将手机屏幕投到电脑上,并可以通过电脑控制您的Android设备.它可以通过USB连接,也可以通过Wifi连接(类似于隔空投屏),而且不需 ...

  5. Java面试——Redis

    一.Redis 为什么那么快 [1]完全基于内存,绝大部分请求是纯粹的内存操作,非常快速.数据存在内存中.[2]数据结构简单,对数据操作也简单,Redis中的数据结构是专门进行设计的.[3]采用单线程 ...

  6. linux服务器qps查询,查看当前linux服务器的QPS

    https://blog.csdn.net/weixin_42119281/article/details/116595205 QPS:每秒查询率(QPS,Queries-per-second)是对一 ...

  7. DOM选择器之元素其他节点选择器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. QML 界面切换的几种方法(带示例代码)

    QML 界面切换的几种方法(带示例代码)

  9. Pause Giant AI Experiments: An Open Letter(暂停大型人工智能实验: 一封公开信)

    Pause Giant AI Experiments: An Open Letter(暂停大型人工智能实验: 一封公开信) 前几天在 futureoflife 网站上有一封公开信,呼吁暂停大型人工智能 ...

  10. ASP.NET Core - 缓存之内存缓存(上)

    1. 缓存 缓存指的是在软件应用运行过程中,将一些数据生成副本直接进行存取,而不是从原始源(数据库,业务逻辑计算等)读取数据,减少生成内容所需的工作,从而显著提高应用的性能和可伸缩性,使用好缓存技术, ...