Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
emacs在使用#-*-编码保存python代码之前不断询问:ASCII-*-_Python_Emacs_Character Encoding - Fatal编程技术网

emacs在使用#-*-编码保存python代码之前不断询问:ASCII-*-

emacs在使用#-*-编码保存python代码之前不断询问:ASCII-*-,python,emacs,character-encoding,Python,Emacs,Character Encoding,我有一个python脚本,它的开头是: #!/usr/bin/env python # -*- coding: ASCII -*- 在保存之前,它总是拆分我的窗口,并询问: 警告(mule):指定的编码系统“ASCII”无效 对于当前缓冲区/文件,使用:coding标记。 强烈建议在写入文件之前对其进行修复 我需要说是的,有没有办法禁用它?很抱歉问你,但我在谷歌上运气不好 GabrielPython增强计划(PEP)263讨论了定义源代码编码的多种方法。这里有两个特别的要点: 如果没有编码

我有一个python脚本,它的开头是:

#!/usr/bin/env python
# -*- coding: ASCII -*-
在保存之前,它总是拆分我的窗口,并询问:

警告(mule):指定的编码系统“ASCII”无效 对于当前缓冲区/文件,使用:coding标记。 强烈建议在写入文件之前对其进行修复

我需要说是的,有没有办法禁用它?很抱歉问你,但我在谷歌上运气不好


Gabriel

Python增强计划(PEP)263讨论了定义源代码编码的多种方法。这里有两个特别的要点:


  • 如果没有编码注释,Python的解析器将采用ASCII

    所以你根本不需要在你的文件里写这个。不过,如果您确实希望明确说明文件编码:

  • 要定义源代码编码,必须在源文件中放置魔术注释,作为文件的第一行或第二行,例如:

    #编码=
    
    (请注意,
    =
    可以替换为
    )。因此,您可以使用
    #编码:ascii
    ,而不是答案中建议的更详细的
    #-*-编码:ascii-*-
    。这似乎让emacs感到高兴


    • 一个不涉及更改脚本的解决方案是告诉Emacs作为编码系统,ASCII的含义是什么。(默认情况下,Emacs将其称为
      US-ASCII
      )。将其添加到
      .Emacs
      文件中:

      (define-coding-system-alias 'ascii 'us-ascii)
      

      然后Emacs应该能够从“没有编码注释,Python的解析器将采用ASCII”理解
      #-*-编码:ASCII-*-

      。因此,您的文件中根本不需要这个。此外,您可以使用
      #coding:ascii
      而不是更详细的
      #-*-编码:ascii-*-
      。PEP 263中也提到了这一点。@Chris:为什么不把它写在回答中?@Thomas谢谢你的建议,我已经这么做了。“如果你使用的是Python 2.x,没有编码注释,Python的解析器将采用ASCII”。如果您想要ascii源代码并且使用的是Python3.x,那么您确实需要它。
      (define-coding-system-alias 'ascii 'us-ascii)