Python中希伯来语字符串的解码和编码

Python中希伯来语字符串的解码和编码,python,python-unicode,Python,Python Unicode,我正在尝试对希伯来语字符串“שלום”进行编码和解码。然而,编码后,我会胡言乱语: >>> word = "שלום" >>> word = word.decode('UTF-8') >>> word u'\u05e9\u05dc\u05d5\u05dd' >>> print word שלום >>> word = word.encode('UTF-8') >>> word '\xd7\

我正在尝试对希伯来语字符串“שלום”进行编码和解码。然而,编码后,我会胡言乱语:

>>> word = "שלום"
>>> word = word.decode('UTF-8')
>>> word
u'\u05e9\u05dc\u05d5\u05dd'
>>> print word
שלום
>>> word = word.encode('UTF-8')
>>> word
'\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d'
>>> print word
׳©׳׳•׳
我应该如何做好这件事


谢谢

您必须确保在您的环境中使用正确的编码(shell或脚本)。 如果使用脚本,请包括以下内容:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
确保您的环境知道您正在使用UTF-8。 您可能会发现您的shell终端将只接受ASCII,因此请确保它能够支持UTF-8

>>> word = "שלום"
>>> word
'\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d'
>>> print word
שלום
>>> word = word.decode('UTF-8')
>>> word
u'\u05e9\u05dc\u05d5\u05dd'
>>> print word
שלום
>>> word = word.encode('UTF-8')
>>> word
'\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d'
>>> print word
שלום
>>>

b'\xd7\xa9\xd7\x9c\xd7\x95\xd7\x9d'是组成utf8字符串的字节。当您将它们打印为字符串时,它看起来乱七八糟(在python2中(假设使用std默认编码),但在py3中的注释中看起来却一样)。如果您随后使用utf8将这些字节解码回来,您将得到从中开始的Unicode字符串。在您的终端中
sys.getdefaultencoding()
的结果是什么?我得到字符串“ascii”。您可以添加您正在使用的python版本吗!它是Python2.7.3,我正在使用Pyscripter。