Java String.getBytes()和Python字符串之间的行为完全相同 - >字节?

时间:2012-02-21 10:12:06

标签: java python bytearray

在我的Java代码中,我有以下代码段:

String secret = "secret";
byte[] thebytes = secret.getBytes();

我希望在python中有完全相同的结果。我怎么能这样做?

secret = 'secret'
thebytes = ??? ??? ???

感谢。

编辑:

此外,拥有Python 2.x和3.x

的解决方案会很有趣

3 个答案:

答案 0 :(得分:8)

这并不像最初看起来那么简单,因为Python历史上混淆了字节数组和字符串。在Python 3中简短的回答是

secret = "secret"
secret.encode()

但是你应该阅读Python如何处理unicode,字符串和字节。

答案 1 :(得分:7)

在python-2.7中有bytearray()

>>> s = 'secret'
>>> b = bytearray(s)
>>> for i in b:
...    print i
115
101
99
114
101
116

如果这是您正在寻找的。

答案 2 :(得分:4)

我不确定完全是否相同,因为Python没有byte,但这可能会起到作用:

bytes = [ord(c) for c in "secret"] # => [115, 101, 99, 114, 101, 116]

或者使用map,正如katrielalex建议的那样,只是因为它很漂亮:

bytes = map(ord, "secret") # => [115, 101, 99, 114, 101, 116]