當(dāng)我們?cè)谶M(jìn)行網(wǎng)絡(luò)請(qǐng)求時(shí),比如下載文件瞬沦,用原生的網(wǎng)絡(luò)請(qǐng)求或者第三方網(wǎng)絡(luò)請(qǐng)求框架的時(shí)候,若要從response的header里面取filename雇锡,我們會(huì)發(fā)現(xiàn)逛钻,如果訪問(wèn)的url里面帶有中文,拿到的filename會(huì)出現(xiàn)亂碼锰提。
這是因?yàn)閞esponse 把 Content-Disposition 中的 filename 當(dāng)成 ASCII 處理了.
嘗試后曙痘,解決辦法如下:
NSString *fileName,*str;
const char *byte = NULL;
fileName = [response suggestedFilename];
byte = [fileName cStringUsingEncoding:NSISOLatin1StringEncoding];
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
str = [[NSString alloc] initWithCString:byte encoding:
enc]; //如是utf芳悲,此處應(yīng)改為NSUTF8StringEncoding