文件下載中文文件名亂碼(轉(zhuǎn))
B/S應(yīng)用中,下載一個(gè)附件保存時(shí),中文文件名會(huì)亂碼,在實(shí)際開(kāi)發(fā)中經(jīng)常遇到,現(xiàn)貼出C#和JAVA的解決方法:
C#:
Response.AppendHeader("Content-Disposition", "attachment;filename=" + Tools.toUtf8String(result));
其中用到的轉(zhuǎn)換方法:
1
public static 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 = new byte[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

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

JAVA:
resp.addHeader("Content-Disposition","attachment;filename=" + Tools.toUtf8String(m_entityIndex.m_sName) + ".xls");
其中用到的轉(zhuǎn)換方法:



























posted on 2009-01-22 15:15 jumliang 閱讀(557) 評(píng)論(0) 編輯 收藏