python的中文问题一直是困扰新手的头疼问题。
如果在运行时出现SyntaxError: Non-ASCII character '\xe8' in file 是因为源文件中有中文出现:
Python 默认的是ASCII 编码方式,如果出现中文会出现问题,所哟必须在代码的第二行或第一行 显示的声明编码方式(已注释的方式,即"#"开始):使用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>即把<encoding name>置换为 utf-8
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 ...