Home >Java >javaTutorial >What to do if the java download file name is garbled
Solve the garbled file name of Java download: 1. Set the request header to specify the encoding; 2. Use URLDecoder to decode; 3. Get the original file name to avoid encoding problems; 4. Use third-party libraries (Apache Commons IO, JCodec) ;5. Contact the server to check the encoding settings.
Java download file name garbled solution
When using Java to download a file from a URL, the file name may be Garbled characters appear due to incorrect file encoding. Depending on the specific situation, there are several solutions:
1. Set the correct encoding format
<code class="java">URLConnection connection = url.openConnection(); connection.setRequestProperty("Accept-Charset", "UTF-8");</code>
By setting the Accept-Charset
request header , specifies the correct character encoding for files returned by the server.
2. Use URLDecoder to decode
<code class="java">String fileName = URLEncoder.decode(response.getFileName(), "UTF-8");</code>
Use the URLDecoder.decode()
function to decode the file name into UTF-8 format.
3. Get the original file name based on the HTTP header
<code class="java">String fileName = response.getHeaderField("Content-Disposition"); if (fileName != null) { fileName = fileName.substring(fileName.indexOf("filename=") + 9); fileName = fileName.substring(0, fileName.length() - 1); }</code>
Extract the original file name from the HTTP header to avoid encoding problems.
4. Use third-party libraries
Some third-party libraries provide convenient methods to handle garbled file names, for example:
FileUtils.writeByteArrayToFile()
The function automatically determines the file name encoding and decodes it. FileGrab()
The function provides the getFile()
method to obtain the original file name of the downloaded file. 5. Contact the server
If the above solutions are invalid, please contact the server-side developer to check whether the server-side file encoding settings are correct.
The above is the detailed content of What to do if the java download file name is garbled. For more information, please follow other related articles on the PHP Chinese website!