有没有简单的方法将包含unicode字符串的对象转换为utf8?
例如:
before = [
u'labelset': {u'labelset_id': 80L, u'labelset_name': u'\u6d17\u8863\u6a5f'},
u'labelset': {u'labelset_id': 81L, u'labelset_name': u'\u6d17\u8863\u6a5f'},
u'labelset': {u'labelset_id': 82L, u'labelset_name': u'\u6d17\u8863\u6a5f'},
]
after = [
'labelset': {labelset_id: 80L, labelset_name: 'test'},
'labelset': {labelset_id: 81L, labelset_name: 'test'},
'labelset': {labelset_id: 81L, labelset_name: 'test'},
]
答案 0 :(得分:1)
在python 2中。*有两种类型的字符串:
str (sequence of bytes)
unicode (sequence of unicode code points)
要将unicode转换为str,需要指定规则(哪些字节代表特定的unicode点)。此规则称为编码。因此,要使用utf8
编码将unicode转换为str,您需要使用encode
方法:
>>> u'\u6d17\u8863\u6a5f'.encode('utf8')
'\xe6\xb4\x97\xe8\xa1\xa3\xe6\xa9\x9f'
结果将是一个字节序列,可以保存到例如文本文件中。
要将str转换为unicode,您需要知道在从unicode到str的转换过程中应用了哪些规则。在目前的情况下,此规则为utf8
编码。为此,请使用decode
方法:
>>> '\xe6\xb4\x97\xe8\xa1\xa3\xe6\xa9\x9f'.decode('utf8')
u'\u6d17\u8863\u6a5f'
这是关于python字符串和编码的好presentation