將中文GB2312轉換成UTF-8的方法:
new String(file.getFileName().getBytes(System.getProperty("file.encoding")), "UTF-8")
這里的System.getProperty("file.encoding")是獲取系統默認的編碼。測試在日文系統下也是可行的。
補充一個UTF-8的轉換方法
?1
public?static?String?toUtf8String(String?s)?
{
?2
??StringBuffer?sb?=?new?StringBuffer();
?3
??for?(int?i?=?0;?i?<?s.length();?i++)?
{
?4
???char?c?=?s.charAt(i);
?5
???if?(c?>=?0?&&?c?<=?255)?
{
?6
????sb.append(c);
?7
???}?else?
{
?8
????byte[]?b;
?9
????try?
{
10
?????b?=?Character.toString(c).getBytes("utf-8");
11
????}?catch?(Exception?ex)?
{
12
?????System.out.println(ex);
13
?????b?=?new?byte[0];
14
????}
15
????for?(int?j?=?0;?j?<?b.length;?j++)?
{
16
?????int?k?=?b[j];
17
?????if?(k?<?0)
18
??????k?+=?256;
19
?????sb.append("%"?+?Integer.toHexString(k).toUpperCase());
20
????}
21
???}
22
??}
23
??return?sb.toString();
24
?}



?2

?3



?4

?5



?6

?7



?8

?9



10

11



12

13

14

15



16

17

18

19

20

21

22

23

24
