求解释为啥修改hook编码格式后运行pycharm结果中看到的id还是乱码,debug已经显示是中文了

已经在conftest.py里重写hook函数,debug也能看到nodeid显示中文了,实际运行用例显示的时候还是存在乱码
以下是我的hook函数代码

def pytest_collection_modifyitems(
    session: "Session", config: "Config", items: List["Item"]
) -> None:
    print (items)
    for item in items:
        item.name=item.name.encode('utf-8').decode('unicode-escape')
        item._nodeid = item._nodeid.encode('utf-8').decode('unicode-escape')

以下是我的用例代码

class Test1:
    @pytest.mark.run(order=2)
    @pytest.mark.parametrize('name',['1安全','2安全'])
    def test_foo(self,name):
        print (name)
        assert True


块引用

目录结构展开看看

内层的conftest里怎么写的呀

def pytest_collection_modifyitems(
    session: "Session", config: "Config", items: List["Item"]
) -> None:
    print (items)
    for item in items:
        item.name=item.name.encode('utf-8').decode('unicode-escape')
        item._nodeid = item.nodeid.encode('utf-8').decode('unicode-escape')
        # print ("1111",item._nodeid)

item._nodeid 是不是写错啦

应该是
item._nodeid = item._nodeid.encode(‘utf-8’).decode(‘unicode-escape’)`

修改过了 还是不行 ,仍然显示乱码

上传下完整代码到github或 gitee

感觉是某个插件或者什么配置影响到了hook函数,传个完整代码

hogwarts-homework: 作业仓库 (gitee.com)
文件为pytestjson/test/test_pytest_order.py

已解决能在pycharm正确显示中文

首先从编码错误上来看就是编码格式乱码问题,根据该情况确定编码格式是被错误转换了错误为utf-8强制转换成了"unicode-escape",所以在hook中把强制编码转换去掉就可以啦
我的理解大概是pycharm每个人的显示编码格式还是不一样的,转换中文显示还是得按照每个人的具体情况去进行转换
这边确定自己乱码错误是参考 常见乱码参考 - 测试开发 - 测试人社区 (ceshiren.com)这个常见乱码得到的结论,有相同问题的可以自行参考后重新编写hook函数