你用的是python3才会出这个问题。 python3在readlines里,缺省会使用操作系统当前的编码来解析文件,比如windows下就用GBK,在linux下则根据当前language来设置解析办法。
解决的办法是在open()里加上参数
将
fi= open('somefile.txt', 'r')
改成
fi= open('somefile.txt', 'rt',encoding="utf-8")
这个encoding就是指定编码格式。 如果encoding="utf-8"不行,你就改成encoding="gb18030",如果还不成,就改成encoding="big-5"。如果还不成。只能手工将" —"
替换成负号。
sL = fi.readlines().decode('utf-8')