跨平台最安全的python编码

跨平台最安全的python编码,python,encoding,cross-platform,Python,Encoding,Cross Platform,我必须跨平台运行一些python代码。 就源文件的编码而言,什么是最安全的选择 我注意到: #!/bin/env python # -*- coding: iso-8859-1 -*- """ Created on Wed Feb 22 09:40:16 2017 """ pycode 在Linux中不会引发错误,而在Windows中会引发错误。 以下情况似乎更安全,为什么会这样 #!/bin/env python #-*- coding: utf-8 -*- """ Created on W

我必须跨平台运行一些python代码。 就源文件的编码而言,什么是最安全的选择

我注意到:

#!/bin/env python
# -*- coding: iso-8859-1 -*-
"""
Created on Wed Feb 22 09:40:16 2017
"""
pycode
在Linux中不会引发错误,而在Windows中会引发错误。 以下情况似乎更安全,为什么会这样

#!/bin/env python
#-*- coding: utf-8 -*-
"""
Created on Wed Feb 22 09:40:16 2017
"""
pycode

Python3源代码预计编码为UTF-8。因此,UTF-8是用于Python 3代码的最安全的编码,因为开发人员不必记住做任何事情,例如声明规范

  • 这是默认值,因此开发人员不需要记住声明显式编码
  • 它可以对任何unicode代码点进行编码,因此(理论上)开发人员不会在特定源中使用不同的编码来包含特定字符
但是,如果源代码是在UTF-8不是默认编码的系统上编辑的,开发人员必须注意确保源代码保存为UTF-8

这同样适用于Python2,但如果要使用UTF-8,则需要声明编码


拥有一个相当全面的测试套件将大大降低源文件编码错误的风险,因为导入这样的文件将导致
语法错误。如果代码缺少测试,那么编写一个脚本来搜索
.py
文件,尝试打开它们并指定UTF-8作为编码,并报告任何引发
UnicodeDecodeError的错误就不难了,因为windows实际上不工作,只是有时会给人一种这样的印象。所有python字符串(我指的是实际的python,而不是在Python3出现的那一刻就应该消亡的boomer python,也被称为真正的python,也是唯一的python)都是用unicode编码的,大多数时候你都应该用unicode编码,不管怎样,如果有什么东西不支持unicode,它可能在[当前年份]中根本不存在,将源文件编码并声明为UTF-8,如果在UTF-8不是默认语言环境编码的环境中进行编辑,请确保将其保存为UTF-8。对于Python3,默认情况下源文件假定为UTF-8,因此不需要进行编码声明,但您仍应注意它们是否正确地保存在非UTF-8语言环境中。你能回答一下吗?还有,utf是最安全的吗?伙计们,你应该用它来做一个asnwer utf-8更安全,因为它可以编码任何unicode码点,而拉丁-1,作为8位编码,不能。