どのようにPythonの文字列に依存しないPythonのバージョンを使用していますか?Pythonの文字列をバージョンに無関係にする方法
私はPython 2.7とPython 3. *で動作するコードを維持しようとしています。私は直感的なエラーに遭遇しています。
print('Job: %s' % job)
が、それは誤りではPython 3.3に失敗します:たとえば、これは、Python 2.7で完璧に動作
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 27: ordinal not in range(128)
私はその行を変更した場合:
print(('Job: %s' % job).encode('utf-8'))
修正されていますそれはPython 3.3で...しかしそれはPython 2.7を壊します、そして今全く同じエラーを投げます。
Pythonで文字列を管理しようとすると、モルモットのように感じられます。 Pythonのすべてのバージョンで動作するように、文字列を確実にエンコードする方法はありますか?
このタイトルは少し誤解を招くもので、微調整が必要な場合があります。 –
''ジョブ:%s '%job'はPython 2とPython 3の両方で失敗することがあります。 Python 2では、間違ったことを静かにします。 – roeland
'job'にあるものを表示します。それは重要です。 –