天天看点

Python中文问题 或 SyntaxError: Non-ASCII character '\xe8' in file

python的中文问题一直是困扰新手的头疼问题。

如果在运行时出现SyntaxError: Non-ASCII character '\xe8' in file 是因为源文件中有中文出现:

Python 默认的是ASCII  编码方式,如果出现中文会出现问题,所哟必须在代码的第二行或第一行 显示的声明编码方式(已注释的方式,即"#"开始):
       
使用utf-8编码方式即可解决,       
即把<encoding name>置换为 utf-8      
# coding=<encoding name> 或者 #!/usr/bin/python # -*- coding: <encoding name> -*- 或者 #!/usr/bin/python # vim: set fileencoding=<encoding name> : 或者 # This Python file uses the following encoding: <encoding name>

Examples

These are some examples to clarify the different styles for
    defining the source code encoding at the top of a Python source
    file:

    1. With interpreter binary and using Emacs style file encoding
       comment:

          #!/usr/bin/python
          # -*- coding: latin-1 -*-
          import os, sys
          ...

          #!/usr/bin/python
          # -*- coding: iso-8859-15 -*-
          import os, sys
          ...

          #!/usr/bin/python
          # -*- coding: ascii -*-
          import os, sys
          ...

    2. Without interpreter line, using plain text:

          # This Python file uses the following encoding: utf-8
          import os, sys
          ...

    3. Text editors might have different ways of defining the file's
       encoding, e.g.

          #!/usr/local/bin/python
          # coding: latin-1
          import os, sys
          ...

    4. Without encoding comment, Python's parser will assume ASCII
       text:

          #!/usr/local/bin/python
          import os, sys
          ...

    5. Encoding comments which don't work:

       Missing "coding:" prefix:

          #!/usr/local/bin/python
          # latin-1
          import os, sys
          ...

       Encoding comment not on line 1 or 2:

          #!/usr/local/bin/python
          #
          # -*- coding: latin-1 -*-
          import os, sys
          ...

       Unsupported encoding:

          #!/usr/local/bin/python
          # -*- coding: utf-42 -*-
          import os, sys
          ...