文件下载中文文件名乱码
来源:互联网 发布:win7小马激活软件 编辑:程序博客网 时间:2024/04/30 03:44
B/S应用中,下载一个附件保存时,中文文件名会乱码,在实际开发中经常遇到,现贴出C#和JAVA的解决方法:
C#:
Response.AppendHeader("Content-Disposition", "attachment;filename=" + Tools.toUtf8String(result));
其中用到的转换方法:
1publicstatic String toUtf8String(String s)
2 {
3 StringBuilder sb= new StringBuilder();
4 for (int i=0;i<s.Length;i++)
5 {
6 char c = s[i];
7 if (c >= 0&& c <= 255)
8 {
9 sb.Append(c);
10 }
11 else
12 {
13 byte[] b;
14 try
15 {
16 b= Encoding.UTF8.GetBytes(c.ToString());
17 }
18 catch (Exception ex)
19 {
20 b= newbyte[0];
21 }
22 for (int j= 0; j< b.Length; j++)
23 {
24 int k = b[j];
25 if (k < 0) k+= 256;
26
27 sb.Append("%"+ Convert.ToString(k,16).ToUpper());
28 }
29 }
30 }
31 return sb.ToString();
32 }
33
34
2 {
3 StringBuilder sb= new StringBuilder();
4 for (int i=0;i<s.Length;i++)
5 {
6 char c = s[i];
7 if (c >= 0&& c <= 255)
8 {
9 sb.Append(c);
10 }
11 else
12 {
13 byte[] b;
14 try
15 {
16 b= Encoding.UTF8.GetBytes(c.ToString());
17 }
18 catch (Exception ex)
19 {
20 b= newbyte[0];
21 }
22 for (int j= 0; j< b.Length; j++)
23 {
24 int k = b[j];
25 if (k < 0) k+= 256;
26
27 sb.Append("%"+ Convert.ToString(k,16).ToUpper());
28 }
29 }
30 }
31 return sb.ToString();
32 }
33
34
JAVA:
resp.addHeader("Content-Disposition","attachment;filename=" + Tools.toUtf8String(m_entityIndex.m_sName) + ".xls");
其中用到的转换方法:
publicstatic 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= new Character(c).toString().getBytes("utf-8");
//b = Character.toString(c).getBytes("utf-8");
} catch (Exception ex){
System.out.println(ex);
b= newbyte[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();
}
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= new Character(c).toString().getBytes("utf-8");
//b = Character.toString(c).getBytes("utf-8");
} catch (Exception ex){
System.out.println(ex);
b= newbyte[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();
}
- 文件下载中文文件名乱码
- asp.net文件下载,中文文件名乱码
- 中文文件下载文件名乱码问题
- Struts2 文件下载中文文件名乱码问题
- 解决Struts2文件下载文件名中文乱码
- 下载文件 解决中文文件名乱码
- Response下载文件,中文文件名乱码问题
- 下载文件firefox中文文件名乱码
- POI 火狐下载文件-中文文件名乱码
- Java下载文件,文件名中文乱码问题
- Http下载文件,文件名中文乱码问题
- 文件下载文件名中文乱码 浏览器兼容问题
- IE文件下载时中文文件名乱码
- 文件下载(解决中文文件名下载乱码问题) 收集
- 文件下载 response.setHeader()下载中文文件名乱码问题 解决办法
- struts2 下载文件,下载弹出框,文件名中文乱码
- 下载中文文件名乱码问题
- struts2下载中文文件名乱码
- Solve "bash: /bin/cp: Argument list too long"
- 初识 curl (安装与示例)
- Hadoop 文件系统笔记
- Windows服务器环境下flv视频播放——对未缓冲进度条实现拖动
- jdk1.5-1.7新特性详细介绍
- 文件下载中文文件名乱码
- 在SQLPLUS中oracle查看表结构SQL语句 oracle修改表字段SQL语句 修改表字段SQL语句
- 实战DeviceIoControl 之一:通过API访问设备驱动程序(学习)
- 技术转载:Android高手进阶教程(二十二)之---Android中几种图像特效处理的集锦!! .
- Install the Oracle JDK 6
- [转].net中的认证(authentication)与授权(authorization)
- Autohiding Scrollbars
- 实战DeviceIoControl 之二:获取软盘/硬盘/光盘的参数(学习)
- Perl Object