windows下Psychopy3保存文件中文乱码解决办法

如题所述

第1个回答  2022-06-13
最近在使用psychopy3时出现一件非常奇怪的事情:运行结束后保存的csv文件中文乱码并错行。

如图所示:instr是指导语变量,image_file是图片的路径。

这是一个很简单的使用程序,我就直接用了psychopy图形化的builder窗口。这个实验用conditions.xlsx文件控制循环。因为不同的trial指导语不一样,在conditions里面写了一些中文的指导语。但在运行完该程序后,获取到的数据里面中文全部乱码而且有错列,例如本来应该两列的东西拼到了一列。但是在运行呈现的时候,展现出来的指导语都是中文,且正确。

结合windows下使用python的经验,我估摸着是windows的编码问题。

到这里基本上已经解决了主要问题。但是后续还会出现这种情况,需要进一步查明为什么utf-8在这里无效。首先一个个排除了.py文件的编码问题,全是utf-8。

解决办法1:

1、找到psychopy安装路径下的experiment文件,例如:PsychoPy3\Lib\site-packages\psychopy\data\experiment.py

2、把里面def saveAsWideText这一行的 encoding = 'utf-8' 改成 encoding = 'utf-8-sig',保存!!

3、再运行就OK了。

这种方法有个 弊端 ,就是如果你不使用Excel而是用R语言处理最终的csv数据,那么在用R读入该文件的时候可能需要指定encoding = "utf-8-sig"。

解决办法2:

安装LibreOffice,并将之修改为.csv文件的默认打开程序,该问题就解决了。弊端:这个办法就是要新安装一个软件。

最终发现根本问题在于使用windows里EXCEL打开这个csv文件时,EXCEL默认给这个文件加了BOM,导致这个原本UTF-8编码的文件显示错乱。

也就是原本UTF-8编码的文件,EXCEL非要用UTF-8-sig的编码去打开,导致显示错乱。
相似回答
大家正在搜