問題が発生します:
中国語名を含む写真をアップロードしますが、ダウンロード時に中国語名が表示されません。
表示内容:
(関連ビデオ チュートリアルの推奨事項: Java ビデオ チュートリアル)
解決策:
1. Sping-mvc.xml パーツ コード:
<!-- 上传文件的处理器 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置默认编码 解决了上传文件名乱码的问题 --> <property name="defaultEncoding" value="utf-8"></property> <!-- 上传图片最大大小5M --> <property name="maxUploadSize" value="5242440"></property> </bean>
2. FileController.java 中国語ファイル名取得コード:
ブラウザ形式を取得し、さまざまなブラウザに応じてファイルを制御します名前のエンコード形式。
String userAgent = request.getHeader("User-Agent");//获取浏览器名(IE/Chome/firefox) if(userAgent.contains("MSIE")||userAgent.contains("Trident")) {//针对IE或IE为内核的浏览器 fileName=java.net.URLEncoder.encode(fileName,"UTF-8"); }else { fileName=new String(fileName.getBytes("UTF-8"),"ISO-8859-1");//谷歌控制版本 } headers.setContentDispositionFormData("attachment", fileName);// 默认下载文件名为原始文件名
その他のブラウザ制御文字形式: (詳細)
String userAgent = request.getHeader("User-Agent");//获取浏览器名(IE/Chome/firefox) if (userAgent.contains("firefox")) { fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1"); // firefox浏览器 } else if (userAgent.contains("MSIE")) { fileName = URLEncoder.encode(fileName, "UTF-8");// IE浏览器 }else if (userAgent.contains("CHROME")) { fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1");// 谷歌 } headers.setContentDispositionFormData("attachment", fileName);// 默认下载文件名为原始文件名
おすすめの関連記事とチュートリアル: Java 入門チュートリアル
以上がJavaダウンロードファイルの中国語ファイル名が文字化けするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。