在本地pycharm运行os.listdir(path)
中文文件正常显示
但是在linux下,我讲文件上传的,然后就出现了下面的线下
dirsList = os.listdir(path)
print(dirsList)
'[{"project": "project", "children": [{"DATA": ["dbc_analysis - \udcb8\udcb1\udcb1\udcbe (2).asc", "dbc_analysis - \udcb8\udcb1\udcb1\udcbe.asc", "dbc_analysis.asc"]}, {"DBC": ["dbc_analysis - \udcb8\udcb1\udcb1\udcbe (2).dbc", "dbc_analysis - \udcb8\udcb1\udcb1\udcbe.dbc", "dbc_analysis.dbc"]}, {"Filter": []}, {"Signal": []}]}]'
dcb8\udcb1\udcb1\udcbe 原本是中文的“副本”
print(json.dumps(dirsList, ensure_ascii=False));
系统默认的编码格式不一样
\u开头表示的是Unicode编码
解决办法:
print(path.decode("raw_unicode_escape"))
for i in dirsList:
i.encode('utf-8', 'surrogateescape').decode('utf-8')
先对str(unicode)进行编码,再解码,即可正常显示