|
复制代码 代码如下: public static String toUtf8String(String s) {
StringBuffer sb = new StringBuffer(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c >= 0 && c <= 255) { sb.append(c); } else { byte[] b; try { b = Character.toString(c).getBytes("utf-8"); } catch (Exception ex) { exceptionUtil.error("将文件名中的汉字转为UTF8编码的串时错误,输入的字符串为:" + s); b = new byte[0]; } for (int j = 0; j < b.length; j++) { int k = b[j]; if (k < 0) k += 256; sb.append("%" + Integer.toHexString(k).toUpperCase()); } } } return sb.toString(); }
/** * 根据不同浏览器将文件名中的汉字转为UTF8编码的串,以便下载时能正确显示另存的文件名. * * @param s * 原文件名 * @return 重新编码后的文件名 */ public static String toUtf8String(HttpServletRequest request,String s) { String agent = request.getHeader("User-Agent"); try { boolean isFireFox = (agent != null && agent.toLowerCase().indexOf("firefox") != -1); if (isFireFox) { s = new String(s.getBytes("UTF-8"),"ISO8859-1"); } else { s = StringUtil.toUtf8String(s); if ((agent != null && agent.indexOf("MSIE") != -1)) { // see http://support.microsoft.com/default.aspx?kbid=816868 if (s.length() > 150) { // 根据request的locale 得出可能的编码 s = new String(s.getBytes("UTF-8"),"ISO8859-1"); } } } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return s; }
您可能感兴趣的文章:- JAVA技术实现上传下载文件到FTP服务器(完整)
- Java通过FTP服务器上传下载文件的方法
- Java Spring MVC 上传下载文件配置及controller方法详解
- java操作ftp下载文件示例
- 使用java实现http多线程断点下载文件(一)
- Javaweb实现上传下载文件的多种方法
- 使用java实现http多线程断点下载文件(二)
- java webservice上传下载文件代码分享
- java 从服务器下载文件并保存到本地的示例
- java后台批量下载文件并压缩成zip下载的方法
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|