由于语法错误,Django测试将无法运行

时间:2015-06-11 10:35:02

标签: django python-3.x unicode pycharm

当我运行测试时,出现语法错误:SyntaxError:(unicode error) 'utf-8' codec can't decode byte 0xa7 in position 0: invalid start byte

原因似乎是我在第62行的字符串中使用了§。我正在使用python 3.4.2进行项目,并在其他地方使用了§而没有出现错误。我有一个朋友打开项目,在他的屏幕上,test.py中的§显示为问号,但这只是在测试文件中,在其他地方它已被使用它显示正常。我让他把§作为问号出现在他的电脑上改为§并且它有效,这真的很奇怪。我怎么会在我的电脑上修这样的东西呢?每次我想在测试中使用它时,我都无法让他加载文件并插入特殊字符。

编辑:所以我发现pycharm由于某种原因只将tests.py设置为utf-8以外的编码。我将其更改为utf-8然后显示§我写的是问号。然而,将它们换成§并不适用于我。原因是由于某些原因,即使编码设置为utf-8,pycharm仍会为我显示latin1并输入latin1字符而不是utf-8。我已经在其他2台计算机上测试过(1个mac,1个窗口8.1与我遇到的问题相同),它正确地显示了utf-8。在那些计算机上,我的§仍然显示为问号,但是如果我在另一台计算机上更改它,它现在在问题的计算机上显示为§。所以我现在的问题是让pycharm正确使用UTF-8而不是拉丁语1。

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题。由于patrys在评论中消失,文件没有使用UTF-8作为编码。要在pycharm中更改它,我必须转到file-> settings-> editor->文件编码,并将测试的文件编码更改为utf-8。在我这样做之后,我不得不进入文件并重新编辑§,因为它们现在变成了问号。但它仍然无法正常工作。我发现我还必须在pycharm的右下角将其更改为UTF-8。由于某种原因,测试是唯一受此影响的.py文件(即使我删除了原始的tests.py文件并重新创建它)。