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

use*_*774 20 python python-unicode

我正在尝试编码和解码希伯来字符串"שלום".然而,编码后,我得到了胡言乱语:

>>> 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
?©??•?
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

谢谢.

jon*_*ock 20

您必须确保在您的环境中(shell或脚本)具有正确的编码.如果您使用的脚本包含以下内容:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)

确保您的环境知道您使用的是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
????
>>>
Run Code Online (Sandbox Code Playgroud)