我是一名测试开发工程师(全栈),作品有全终端自动化测试框架wyTest,未羽研发测试管理平台,欢迎同行交流。
测试同学可以举个手,认识一下,交个朋友。
一、函数说明:
- 某些情况下,获取到的文本的编码是不确定的,需要转换成utf8才能继续执行,特别是 接口请求 得到的返回数据。
- 先通过 chardet.detect 获取到当前编码(可能还要先判断一下是不是bytes数据)
- 再通过.decode进行解码
二、封装成方便维护和使用的函数:
#!/usr/bin/env/python3
# coding=utf-8
# @Time : 2024-06-28 23:07:14
# @Author : weiyv_cn@163.com
# @File : dataFun.py
# @模块 : 数据处理
import chardet
class DataFun:
# <editor-fold 编码格式转换为 utf8>
@staticmethod
def to_utf8(text):
"""
@功能: 编码格式转换为 utf8
@调用: DataFun.to_utf8
:param text: 必选;string类型;需要转换的字符串;
:return: string类型
"""
if isinstance(text, bytes):
text = bytes.decode(text)
try:
textType = chardet.detect(text)
except:
textType = {}
if textType != {}:
try:
text = text.decode(textType["encoding"]).strip()
except:
pass
return text
# </editor-fold>
封装函数后,可以供给项目使用,避免项目代码直接对三方函数产生依赖。这样,日后如果三方函数发生重大变革,只需要维护自己封装的函数,而大批量的项目代码无需改动,极大了降低了使用难度和维护成本。
测试同学可以举个手,认识一下,交个朋友。