문제 발생:
중국어 이름이 포함된 사진을 업로드하지만 다운로드 시 중국어 이름이 표시되지 않습니다.
그림과 같이:
(관련 영상 튜토리얼 추천: 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. 파일 이름 코드 받기:
브라우저 형식을 가져오고 다양한 브라우저에 따라 파일 이름 인코딩 형식을 제어하세요.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!