Python 3 喜欢字符串转换 python 2
Python 3 like string conversion in python 2
我正在将我的代码移植到 python 3 并保持向后兼容性。
python 2 和 python 3 中的 str
函数以不同方式转换具有非 ASCII 字符的字符串。例如:
Python 2:
In [4]: str('Alnus viridis (Chaix) DC. ssp. sinuata (Regel) A. Löve & D. Löve')
Out[4]: 'Alnus viridis (Chaix) DC. ssp. sinuata (Regel) A. L\xc3\xb6ve & D. L\xc3\xb6ve'
但在 Python 3:
In [1]: str('Alnus viridis (Chaix) DC. ssp. sinuata (Regel) A. Löve & D. Löve')
Out[1]: 'Alnus viridis (Chaix) DC. ssp. sinuata (Regel) A. Löve & D. Löve'
Python 3
如何在 Python 2 中获得相同的表示?我正在将字符串写入 sqlite3 table。
看来您想要的是 unicode 字符串文字。在 Python 3 中,所有普通字符串文字都是 unicode 字符串文字。在 Python 2 中,只有 unicode
值是 unicode 字符串。在 Python 2 中创建一个 unicode 字符串文字是通过在文字前面放置一个 u
来完成的:
u'Alnus viridis (Chaix) DC. ssp. sinuata (Regel) A. Löve & D. Löve'
这与您的 Python 3 字符串的表示相同。注意,如果你的源文件是UTF-8编码,你需要在第一行或第二行添加特殊的注释来表明这一点,例如:
# -*- coding: utf-8 -*-
有关这方面的更多信息,请参阅 PEP 263 or this other question。
我正在将我的代码移植到 python 3 并保持向后兼容性。
python 2 和 python 3 中的 str
函数以不同方式转换具有非 ASCII 字符的字符串。例如:
Python 2:
In [4]: str('Alnus viridis (Chaix) DC. ssp. sinuata (Regel) A. Löve & D. Löve')
Out[4]: 'Alnus viridis (Chaix) DC. ssp. sinuata (Regel) A. L\xc3\xb6ve & D. L\xc3\xb6ve'
但在 Python 3:
In [1]: str('Alnus viridis (Chaix) DC. ssp. sinuata (Regel) A. Löve & D. Löve')
Out[1]: 'Alnus viridis (Chaix) DC. ssp. sinuata (Regel) A. Löve & D. Löve'
Python 3 如何在 Python 2 中获得相同的表示?我正在将字符串写入 sqlite3 table。
看来您想要的是 unicode 字符串文字。在 Python 3 中,所有普通字符串文字都是 unicode 字符串文字。在 Python 2 中,只有 unicode
值是 unicode 字符串。在 Python 2 中创建一个 unicode 字符串文字是通过在文字前面放置一个 u
来完成的:
u'Alnus viridis (Chaix) DC. ssp. sinuata (Regel) A. Löve & D. Löve'
这与您的 Python 3 字符串的表示相同。注意,如果你的源文件是UTF-8编码,你需要在第一行或第二行添加特殊的注释来表明这一点,例如:
# -*- coding: utf-8 -*-
有关这方面的更多信息,请参阅 PEP 263 or this other question。