在Python中我有一个字符串S =“Test”。我想将字符串编码为CP1256,ISO-8859-1,ISO-8859-2,ISO-8859-6,ISO-8859-15和Window-1252格式。我怎样才能将字符串编码成上述格式?在Python中对字符串进行编码
回答
只需使用codecs
模块
import codecs
codecs.encode("hello", "iso-8859-6")
如果你想先检查Python是否知道一定编码格式的只是使用
format_name = "iso-8859-6"
try:
codecs.lookup(format_name)
except LookupError:
print "Encoding {} can't be found".format(format_name)
我不知道为什么斯拉瓦巴切里科夫d提出了他的答案,但这是正确的答案,所以我会再详细说明。
str.encode
正是你想要什么:
返回字符串作为
bytes
对象的编码版本。默认编码是'utf-8'
。可能会给出错误来设置不同的错误处理方案。错误的默认值是'strict'
,这意味着编码错误会引起UnicodeError
。其他可能的值为'ignore'
,'replace'
,'xmlcharrefreplace'
,'backslashreplace'
以及通过codecs.register_error()
注册的任何其他名称,请参见部分Codec Base Classes。有关可能的编码列表,请参见部分Standard Encodings。
如果你按照标准编码的链接,你会看到一个漂亮的表格,显示你用于每一个的名称(你可以使用主编解码器名称或任何别名)。
所以:
encoded_bytes = [S.encode(codec) for codec in
('cp1256', 'iso-8859-1', 'iso-8859-2', 'iso-8859-6',
'iso-8859-15', 'windows-1252')]
虽然你能使用codecs.encode
为其他答案建议,真的没有很好的理由这样做,和一个很好的理由不来:str.encode
强制执行的事实,您在str
对象上调用它,并使用将str
转换为bytes
的编解码器;如果您不小心在已编码的bytes
或list
或其他东西上使用它,您会得到一个例外。
上述所有的假设你如果你使用的是Python 2使用Python 3,一个str
已被编码。因此,如果您可以从unicode
对象开始,如u"Test"
而不是,请执行此操作;如果没有,你会首先想要decode
。不幸的是,Python 2不会强制执行该操作;如果你打电话给str.encode
,它实际上会用sys.getdefaultencoding
进行解码,通常是ASCII,这会导致愚蠢的错误。
谢谢Abarnert最后它的工作......愿上帝保佑你:) – 2014-09-30 17:41:27
- 1. 如何在Python中对字符串进行二进制编码?
- 2. 对Python中的字符串进行URL编码和解码
- 3. 在Python中对unicode特殊字符(符号)进行编码?
- 4. 对字符进行编码
- 5. 编码字符串在Python
- 6. 如何在C#中对字符串进行URL编码
- 7. 如何在Erlang中对一个字符串进行XML编码?
- 8. 如何在Angularjs中对字符串进行编码?
- 9. 如何在PostgreSQL中对一个字符串进行XML编码?
- 10. 如何在Android中使用Base64对字符串进行编码?
- 11. 如何在ColdFusion中对字符串进行编码,排除“dot”
- 12. 对字符串进行编码和解码的JavaScript对象
- 13. 在Python中对字符串中的字符进行排序
- 14. C#使用换行符对文本字符串进行编码
- 15. 无法在PHP中对字符进行编码(错误的字符串值)
- 16. 在Python中的字符串编码
- 17. 无法对Swift中的字符串数组进行编码
- 18. 对Huffman压缩中的位进行编码的字符串
- 19. 阻止ASP.NET在输出上对字符串进行编码
- 20. 使用Base64String对已解码的字符串进行编码
- 21. 使用字符串输出对条形码进行编码
- 22. 如何对空字符串进行编码/解码
- 23. 如何对简单字符串进行编码/解码
- 24. 的Python:编码字符串
- 25. Python字符串编码和==
- 26. 编码字符串字节在Python
- 27. 在python中进行字符串比较
- 28. base64在NodeJS和Python中编码二进制字符串
- 29. 如何在python中对转义序列字符进行编码/解码
- 30. 在比较PHP中的字符串之前对编码进行统一编制
你有尝试过什么吗? – 2014-09-29 19:37:48
我试过编码UTF-8,UTF-16和ASCII编码时没有任何错误,但是在提到的编码情况下我遇到了问题。 – 2014-09-30 17:12:38