Vim无法正常显示中文+Pandas DataFrame转Dict后中文乱码求助
问题1:Vim中无法正常打印中文
我帮你梳理几个排查和解决的方向:
- 先确认Vim的编码配置,打开Vim后输入以下命令设置编码为UTF-8:
要是想永久生效,可以把这两行加到:set encoding=utf-8 :set fileencoding=utf-8~/.vimrc(Linux/macOS)或者_vimrc(Windows)文件里。 - 检查你的终端编码,不管是系统自带的终端还是第三方终端(比如iTerm2、Windows Terminal),都要把编码设置成UTF-8,终端的偏好设置里一般都有这个选项。
- 如果是打印到物理打印机的问题,可能需要先把Vim里的内容导出成UTF-8编码的文本文件,再用支持中文的办公软件(比如Word、WPS)打开后打印,避免打印机不支持Vim的字符输出。
问题2:Pandas转字典后中文显示十六进制编码
这个其实是Python打印时的字符转义问题,底层数据还是正常的UTF-8中文,只是显示成了字节的十六进制表示,给你几个实用的解决方法:
- 方法一:用字典推导式手动构建
直接遍历DataFrame的行来生成字典,能确保中文正常显示:result_dict = {row.userid: row.movie for _, row in df.iterrows()} print(result_dict) - 方法二:借助json模块转换
利用to_json配合json.loads,强制关闭ASCII转义,就能完美保留中文:import json series_obj = pd.Series(df.movie.values, index=df.userid) result_dict = json.loads(series_obj.to_json(force_ascii=False)) print(result_dict) - 方法三:修改标准输出编码
如果只是打印时显示问题,在代码开头加上这两行,让Python标准输出用UTF-8编码:
之后再打印转换后的字典,中文就会正常显示了。import sys sys.stdout.reconfigure(encoding='utf-8')
内容的提问来源于stack exchange,提问作者Lilian417
相关产品推荐
相关产品推荐

