java button中文乱码_java解决中文乱码的几种写法

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

首先定义一个汉语字符串

String zhName = "错误码模板";

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

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

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

4be0e2c6451d4d3d57e8dc766ca78aa2.png

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java jframe添加面板_JFrame添加组件的两种方式

对JFrame添加组件有两种方式:1) 用getContentPane()方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childCompontent)常分开来写Container containergetContentPanel();(隐式的this.getContentPanel()) ;得到jframe的内…

java 德生读卡器对接程序_德生TSW-F4 社保卡读卡器.rar

【实例简介】德生TSW-F4 社保卡读卡器测试程序以及动态库,出厂自带程序【实例截图】【核心代码】b79d6d98-2fcb-4e20-ab26-8f7aa14b320c└── 德生TSW-F4 社保卡读卡器├── TSW-F4 U系列读写器随机软件_20120907│ ├── Dll│ │ ├── F4.h│ │ ├…

ios 数组越界奔溃库_iOS中防止数组越界之后发生崩溃

在iOS开发中有时会遇到数组越界的问题,从而导致程序崩溃。为了防止程序崩溃,我们就要对数组越界进行处理。通过上网查资料,发现可以通过为数组写一个分类来解决此问题。基本思路:为NSArray写一个防止数组越界的分类。分类中利用ru…

java map与set的区别_Java中的Set,List,Map的区别是什么?

对JAVA的集合的理解是想对于数组数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型)JAVA集合可以存储和操作数目不固定的一组数据。所有的JAVA集合都位于 java。util包中!JAVA集合只能存放引用类型的的数据,不能存放…

java怎么使用泛型_java泛型 7 泛型的基本介绍和使用

现在开始深入学习Java的泛型了,以前一直只是在集合中简单的使用泛型,根本就不明白泛型的原理和作用。泛型在java中,是一个十分重要的特性,所以要好好的研究下。一、泛型的基本概念泛型的定义:泛型是JDK 1.5的一项新特性…

java铝轮_为速度而生 JAVA Fuoco铝合金气动公路

人类在追求速度的历史上一直在不断创新,从两个轮子的自行车,到四个轮字的汽车,再到螺旋桨的飞机,追求速度是人类与生俱来的天性。就如同公路车的用途非常多,综合型公路车、耐力型公路车、爬坡型公路车,但唯…

erlang mysql性能瓶颈,Erlang Mysql:如何防止SQL注入

Im very new to erlang and I need to code something which inserts rows in a MySQL Database.How can I prevent SQL Injections with Erlang? Is there also something like prepared statements in other Languages or how should I do it?Thanks for your replies.解决…

下列哪个不是java的数据类型_下面哪个不是Java基本数据类型?()

采集血标本时,错误的操作是A.血清标本应注入干燥试管B.生化检验标本在空腹时采集试比较脂肪酸β-氧化与生物合成的差异。调节水平衡的激素主要是A.胰岛素 B.甲状旁腺激素 C.血管升压素 D求比50克多5克的数是多少?列式是…

Java jpa 字段限制_Java-JPA:仅更新特定字段

我有同样的问题,正如Deinum先生所指出的,答案是否定的,您不能使用save。 主要问题是Spring Data不知道如何处理null。 是否设置了空值,还是因为需要将其删除而设置了空值?现在从您的问题来看,我认为您也有同…

java excel中删除两列_Java 插入、隐藏/显示、删除Excel行或列

概述操作Excel工作表时,对表格中的行或列数据可执行,包括插入、隐藏、显示、删除等在内的多种操作需求,本文将通过Java代码示例演示每种操作的具体实现方法。文中方法使用了Java Excel类库(Free Spire.XLS for Java 免费版),可通过…

java屏蔽编译告警_java-禁止JAXB生成的类上的编译器警告

这可能是该问题的副本(Avoiding Compiler warnings on code generated by xjc),但是由于我不太了解XJC / JAXB自定义绑定特质,所以我想我可能误解了所提到的问题.我的问题似乎很简单-如何将SuppressWarnings(“ all”)批注添加到生成的JAXB类中?我们的项目有0个警告…

Java中number数字类型的转换_Java下数字类型的转换 (转)

Java下数字类型的转换 (转)[more]作者:家居猫各种数字类型转换成字符串型:String s String.valueOf( value); // 其中 value 为任意一种数字类型。字符串型转换成各种数字类型:String s "169";byte b Byte.parseByte( s );short…

Java0steam_Java学习 - Stream 使用

Java Stream使用这段时间在学数据库和Java,发现Java的Stream实际上和数据库的查询操作非常类似。这里简单介绍Stream的用法,并和Sql Server中的操作联系起来。此文为初学Stream所写,以后对Stream有更深的理解后会重写当我们使用一个流的时候&…

mysql初始化很慢_mysql初始化报错

/var/log/mysql.log 日志报错如上图所示解决方法:SELinux惹的祸通俗的讲就是linux服务器的安全策略解决:临时关闭:setenforce 0永久关闭需要修改配置文件,重启机器:修改/etc/selinux/config 文件将SELINUXenforcing改为…

百度java的线程技术_自我提升(基础技术篇)——java线程简介

前言:虽然自己平时都在用多线程,也能完成基本的工作需求,但总觉得,还是对线程没有一个系统的概念,所以,查阅了一些资料,理解那些大神和官方的资料,写这么一篇关于线程的文章本来想废…

java调用扫描仪识别文字_Java使用扫描仪读取文件输入

示例Scanner scanner null;try {scanner new Scanner(new File("Names.txt"));while (scanner.hasNext()) {System.out.println(scanner.nextLine());}} catch (Exception e) {System.err.println("发生异常!");} finally {if (scanner ! nul…

d3 tip mysql_mysql

字符:char(10)->定长、10个字符宽度。如果右侧不够,则空格补齐,取出来的时候删除空格。varchar(10)->变长、最多10个字符如:存姓名的时候,没必要为了那几个长度去使用varchar,使用定长去存储会提高效…

java string rt_如何使jvm加载我的java.lang.String而不是rt.jar中的那个

我认真研究了Java类加载器。现在,我想编写一个与rt.jar中的类之一具有相同的包名称和类名称的类。例如,我自己编写一个java.lang.String类,以及如何打破父级委托模型以使jvm加载我的java.lang.String而不是rt.jar中的类。重新编辑Thx&#xf…

php在线语音,PHP在线语音合成

这篇文章主要介绍了PHP在线语音合成,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下在线语音合成 PHP SDKhttp://yuyin.baidu.com/docs/tts/194PHP SDK文档简介Hi,您好,欢迎使用百度语音合成服务。本文档…

php工厂模式和单例模式,php 设计模式之工厂模式、单例模式、注册树模式

php 设计模式之工厂模式、单例模式、注册树模式在软件工程中,创建型设计模式承担着对象创建的职责,尝试创建适合程序上下文的对象,对象创建设计模式的产生是由于软件工程设计的问题,具体说是向设计中增加复杂度,创建型…