Python中文問題 或 SyntaxError: Non-ASCII character '\xe8' in file
阿新 • • 發佈:2019-01-02
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 ...