2016-06-11 21 views
1

Python 2 strbytesと互換性がありますが、Python 3 strではunicodeです。文字列をバイトとして解釈する方法は?

私はいくつかのプロジェクトをPython3に移植していますが、Python2.7をサポートしています。 このプロジェクトは、多くの文字列定数を持つテストを持っています。また、'...'.join(...)'...'.format(...)はほとんどありません。

Python3を作成する方法b'123' == '123'

+3

できません。代わりに明示的にバイトにエンコードします。 –

+0

Py2.6から3.xへの互換性を得るには、 'from __future__ import unicode_literals'を使用することをお勧めします。 – John1024

+0

を' unicode_literals'とすると、定数を書き直す必要がありますが、バイトと比較して、 。 – eri

答えて

3
PY3

>>> '123ü'.encode('utf-8') 
b'123\xc3\xbc' 

または

>>> bytes('123ü', 'utf-8') 
b'123\xc3\xbc' 

しかし、あなたはおそらくことを別の方法を持って、そして容易な移行のためPY2でUTF-8を使用します。

# -*- coding: utf-8 -*- 
from __future__ import unicode_literals` 

すべての文字列をPy2でu''とすることができます。

+1

'unicode_literals'を逆にしたい – eri

関連する問題