java Web 開発ファイルのダウンロード機能 (コードは次のとおり) では、ファイル名に漢字が含まれる場合、文字化けが発生することが多く、エンコードが必要です。 (推奨事項: java ビデオ チュートリアル )
String fileName = "测试文件.doc"; try { HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); response.setHeader("Content-disposition", "attachment; filename=" + fileName); response.setContentLength((int) file.length()); response.setContentType("application/octet-stream;charset=UTF-8"); byte[] b = new byte[1024]; int i = 0; FileInputStream fis = new FileInputStream(file); ServletOutputStream out = response.getOutputStream(); while ((i = fis.read(b)) > 0) { out.write(b, 0, i); } out.flush(); out.close; fis.close(); } catch (IOException e) { e.printStackTrace(); } FacesContext.getCurrentInstance().responseComplete(); return null;
オプション 1: ファイル名を Unicode にエンコードする
fileName = URLEncoder.encode(fileName, "UTF-8");
ファイル名は Unicode エンコードに変換されます (test file.doc) )、IE ブラウザではテストは正常ですが、Firefox ブラウザでテストしたときに取得されるファイル名はデコードされていない Unicode です。
オプション 2: ファイル名を ISO-8859-1 にエンコードする
fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
この方法では、IE と Firefox の両方で中国語のファイル名を持つファイルを取得できます。ただし、ファイル名にスペースが含まれている場合、Firefox はファイル名からスペースを切り捨てるため、エンコードする前にファイル名のスペースをアンダースコアなどの目に見える文字に置き換える必要があります。
fileName = new String(fileName.replace(" ", "_").getBytes("UTF-8"), "ISO-8859-1");
オプション 3: ブラウザの非互換性
Java Web 開発では、ファイルのダウンロード機能でファイル名が文字化けするという問題がよく発生します。
この問題に対する解決策はブラウザごとに異なります。
IE の場合、URLEncoder を通じてファイル名を UTF8 エンコードします。
他のブラウザ (Firefox、Chrome、safari、opera) では、バイトを ISO8859-1 に変換する必要があります。
if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) { filename = URLEncoder.encode(filename, "UTF-8"); } else { filename = new String(filename.getBytes("UTF-8"), "ISO8859-1"); }
Java の知識をさらに深めたい場合は、java 基本チュートリアル 列に注目してください。
以上がJava ダウンロードでファイル名が文字化けする場合の解決策の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 中国語版
中国語版、とても使いやすい
