ホームページ  >  記事  >  Java  >  Javaダウンロードファイルの中国語ファイル名が文字化けする

Javaダウンロードファイルの中国語ファイル名が文字化けする

王林
王林オリジナル
2020-01-16 10:27:283620ブラウズ

Javaダウンロードファイルの中国語ファイル名が文字化けする

問題が発生します:

中国語名を含む写真をアップロードしますが、ダウンロード時に中国語名が表示されません。

表示内容:

Javaダウンロードファイルの中国語ファイル名が文字化けする

(関連ビデオ チュートリアルの推奨事項: 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。