Python默认采用Unicode字符编码,python汉字的unicode编码值
我刚刚给崇高添加了Python3解释器,下面的代码停止工作了:
对于目录列表中的目录:
fileList=os.listdir(目录)
对于文件列表中的文件名:
filename=os.path.join(目录,文件名)
currentFile=open(文件名,“rt”)
对于当前文件中的行:# #出现异常。
currentLine=line.split( )
对于当前行中的单词:
如果word.lower()不在bigBagOfWords中:
bigbagofwords。追加(单词。下限())
currentFile.close()
我得到以下异常:
文件/用户/库巴/桌面/字典创建者。py ,第11行,在
对于当前文件中的行:
文件"/库/框架/python。框架/版本/3.4/lib/python 3.4/encodings/ascii。py”,第26行,在译中
返回编解码器。ascii _ decode(input,self.errors)[0]
我觉得这很奇怪,因为据我所知,Python3应该在任何地方都支持utf-8 .此外,相同的代码在Python2.7上工作没有任何问题。我读过关于添加环境变量PYTHONIOENCODING编码的文章,但我试过了——没有用(然而,在OS X小牛队中添加环境变量似乎不是那么容易,所以可能是我在添加变量时做错了什么?我修改了/etc/launchd。会议)
Python 3在读取时解码文本文件。默认编码来自区域设置。getpreferredencoding(False),对于您的设置,它显然返回“ASCII码”.请参见打开()函数文档:
在文本模式下,如果未指定编码,则使用的编码取决于平台:调用区域设置。getpreferredencoding(False)以获取当前的区域编码。
您应该使用显式编解码器打开文本文件,而不是依赖系统设置:
currentFile=open(文件名, rt ,编码=latin1 )
在这里设置编码参数以匹配您正在读取的文件。
Python 3支持UTF-8作为源代码的默认值。
您可能想在Unicode操作指南中阅读Python 3和Unicode,其中解释了源代码编码和读写统一码数据。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。