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.pswp.cn/news/443227.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/443227.shtml
英文地址,請注明出處:http://en.pswp.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 設計模式之工廠模式、單例模式、注冊樹模式在軟件工程中,創建型設計模式承擔著對象創建的職責,嘗試創建適合程序上下文的對象,對象創建設計模式的產生是由于軟件工程設計的問題,具體說是向設計中增加復雜度,創建型…