如何在JavaScript和Python中对64位unicode字符串进行编码?

时间:2010-10-13 09:32:16

标签: javascript python encoding base64

我需要一个encript算术,它将文本写入文本。

输入文本可以是unicode,输出应该是a-z A-Z 0-9 - 。 (64 char max)

它可以再次解密为unicode。

它应该在javascript和python中实现。

如果已经有一些图书馆可以做到这一点,那很好,如果没有,你能不能告诉我。

让我谈谈为什么

欺骗中国Greate防火墙,GAE https在中国被封锁。对这个该死的政府感到愤怒。

2 个答案:

答案 0 :(得分:10)

您可能需要查看base64 module。在Python 2.x中(从2.4开始):

>>> import base64
>>> s=u"Rückwärts"
>>> s
u'R\xfcckw\xe4rts'
>>> b=base64.b64encode(s.encode("utf-8"))
>>> b
'UsO8Y2t3w6RydHM='
>>> d=base64.b64decode(b)
>>> d
'R\xc3\xbcckw\xc3\xa4rts'
>>> d.decode("utf-8")
u'R\xfcckw\xe4rts'
>>> print d.decode("utf-8")
Rückwärts

答案 1 :(得分:4)

您正在寻找base64编码。在JavaScript和Python 2中,这有点复杂,因为后者本身不支持unicode,而对于前者,您需要自己实现Unicode编码。

Python 3解决方案

>>> from base64 import b64encode, b64decode
>>> b64encode( 'Some random text with unicode symbols: äöü今日は'.encode() )
b'U29tZSByYW5kb20gdGV4dCB3aXRoIHVuaWNvZGUgc3ltYm9sczogw6TDtsO85LuK5pel44Gv'
>>> b64decode( b'U29tZSByYW5kb20gdGV4dCB3aXRoIHVuaWNvZGUgc3ltYm9sczogw6TDtsO85LuK5pel44Gv' )
b'Some random text with unicode symbols: \xc3\xa4\xc3\xb6\xc3\xbc\xe4\xbb\x8a\xe6\x97\xa5\xe3\x81\xaf'
>>> _.decode()
'Some random text with unicode symbols: äöü今日は'