115诡异的乱码
今天下载115网盘的资源,文件名一堆乱码,以前就出现过这种状况。其实也不是乱码,仔细看了一下应该是用%分隔的unicode码。反正也是闲的没事自己就用python写了一个恢复正常文件名的小程序,还算比较简单,主要就是读取文件名,然后将文件名按照%分隔,再手动设置一个溢出判断,超出两个字符就算溢出,溢出的部分和在文件名中的位置偏移另存,然后转换为字符就行了,最后将转换完的文件名存储。
python确实比较方便啊,不过十几二十行的代码而已,要是这个程序用c 或者java写的话……
# -*- coding:gb2312 -*- F = open('datafile') s = F.readlines() s = [c.rstrip() for c in s] ls = [c.split('%') for c in s] result = [] for c in ls: del c[0] isLarge = False sTag = None nTag = None n = -1 for i in c: n = n + 1 if len(i) > 2: isLarge = True sTag = i[2:] c[n] = i[:2] nTag = n + 1 #print sTag #print nTag c = ['0x' + p for p in c] c = [eval(p) for p in c] c = [chr(p) for p in c] if isLarge == True: c.insert(nTag, sTag) result.append(''.join(c) + '\n') #print c F.close() F = open('myfile', 'w') F.writelines(result) ''' for i in result: print i '''