网络请求url中如果包含空格或者中文字符串的话,需要单独处理
let url = "https://yuanlingou.qd-weimob.com/upload/technofile/xQZ/20210913152809/下载.doc"
oc中
NSString *urlString = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
swift中
// 需要注意返回的urlString是一个可选项
let urlString = url.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
如果url中包含
#
等特殊字符不需要转码,但是其中的中文需要转码
// oc
NSMutableCharacterSet *set = [[NSCharacterSet URLQueryAllowedCharacterSet] mutableCopy];
[set addCharactersInString:@"#"];
NSString *urlString = [url stringByAddingPercentEncodingWithAllowedCharacters:set];
// swift
var set = CharacterSet.urlQueryAllowed
set.insert("#")
let urlString = url.addingPercentEncoding(withAllowedCharacters: set)
补充
判断字符串中是否包含中文
func isContainChinese(_ str: String) -> Bool {
for c in str {
if "\u{4E00}" <= c, c <= "\u{9FA5}" {
return true
}
}
return false
}
网友评论