Python2下混合编码的电商商品长描述字符串解码方案咨询
Python2 商品长描述字段解码方案
乱码根源
grill'd变为grillâd的核心问题是Python2中unicode-escape解码默认使用Latin-1编码处理字节,遇到UTF-8编码的多字节特殊符号(弯引号、商标符等)时会出现编码错位。
适配三类场景的可运行代码
import HTMLParser def decode_long_description(longdescription): html_parser = HTMLParser.HTMLParser() try: if '\\u' in longdescription: # 先unicode-escape解码→按latin1转回字节→utf8解码,解决特殊符号乱码 decoded = longdescription.decode('unicode-escape').encode('latin1').decode('utf8') else: decoded = longdescription # 统一处理HTML实体转义,兼容所有场景 decoded = html_parser.unescape(decoded) return decoded except Exception: # 异常兜底直接返回HTML实体转义后的结果 return html_parser.unescape(longdescription) # 调用示例 # temp['Key_Features'] = decode_long_description(longdescription)
适配效果验证
- Unicode和符号组合场景:弯引号、特殊符号可正常解码,无乱码问题
- 已完全解码场景:不会重复转义,直接保留原始内容
- 全Unicode编码场景:HTML标签、普通字符、特殊符号均可正常解码,保留完整格式
内容的提问来源于stack exchange,提问作者Shivangi._k
相关产品推荐
相关产品推荐

