だから私はpythonスクリプトを持っていて、便宜上python 3.2と2.7で作業したいと思っています。
両方で機能するUnicodeリテラルを使用する方法はありますか?例えば。
#coding: utf-8
whatever = 'שלום'
上記のコードでは、python 2.x(u''
)およびpython 3.xで、その小さなu
は構文エラーを引き起こします。
編集-Python 3.3なので、_u''
_リテラルが再び機能するため、u()
関数は必要ありません。
最良のオプションは、Python 2の文字列オブジェクトからUnicodeオブジェクトを作成するメソッドを作成することですが、Python 3(そのまま)では文字列オブジェクトをそのままにしますすでにユニコード)。
_import sys
if sys.version < '3':
import codecs
def u(x):
return codecs.unicode_escape_decode(x)[0]
else:
def u(x):
return x
_
次に、次のように使用します。
_>>> print(u('\u00dcnic\u00f6de'))
Ünicöde
>>> print(u('\xdcnic\N{Latin Small Letter O with diaeresis}de'))
Ünicöde
_
3.0、3.1、および3.2では:
from __future__ import unicode_literals
ソース: bershmekel 、質問中。オリジナルについては リビジョン4 を参照してください。