#ios #alamofire
#iOS #alamofire
Вопрос:
JSON, который я получил:
{
"buyer": {
"tmallMemberLevel": 0
},
"consumerProtection": {
"items": [{
"desc": "ÕýÆ·±£ÕÏ£¬¼ÙÒ»ÅâËÄ",
"title": "¼ÙÒ»ÅâËÄ",
"type": 0
}, {
"desc": "³ÏÐÅÓû§ÔÚÍË»õ¼Ä³öºó£¬ÏíÊܼ«ËÙÍË¿îµ½ÕË",
"title": "¼«ËÙÍË¿î",
"type": 0
}, {
"desc": "Âú×ãÏàÓ¦Ìõ¼þʱ£¬Ïû·ÑÕß¿ÉÉêÇë ¡°ÆßÌìÎÞÀíÓÉÍË»»»õ¡±",
"title": "ÆßÌìÎÞÀíÓÉÍË»»",
"type": 0
}]
}
}
С Alamofire 5.0 responseString:
{"buyer":{"tmallMemberLevel":0},"consumerProtection":{"items":[{"desc":"正品保障,假一赔四","title":"假一赔四","type":0},{"desc":"诚信用户在退货寄出后,享受极速退款到账","title":"极速退款","type":0},{"desc":"满足相应条件时,消费者可申请 “七天无理由退换货”","title":"七天无理由退换"
Китайский язык отображается правильно.
Однако в Alamofire 5.3 строка ответов:
{"buyer":{"tmallMemberLevel":0},"consumerProtection":{"items":[{"desc":"ÕýÆ·±£ÕÏ£¬¼ÙÒ»ÅâËÄ","title":"¼ÙÒ»ÅâËÄ","type":0},{"desc":"³ÏÐÅÓû§ÔÚÍË»õ¼Ä³öºó£¬ÏíÊܼ«ËÙÍË¿îµ½ÕË","title":"¼«ËÙÍË¿î","type":0},{"desc":"Âú×ãÏàÓ¦Ìõ¼þʱ£¬Ïû·ÑÕß¿ÉÉêÇë ¡°ÆßÌìÎÞÀíÓÉÍË»»»õ¡±"
Китайский язык меняется на беспорядочный код.
Как это решить?
Ответ №1:
Используйте кодировку GBK для строки ответа:
extension String.Encoding {
public static var GB_18030_2000: String.Encoding {
let cfEncoding = CFStringEncodings.GB_18030_2000
let resEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringEncoding(cfEncoding.rawValue))
return String.Encoding(rawValue: resEncoding)
}
}