Kev*_*vin -1 python unicode encoding utf-8
我有一个遗留代码段,encode('utf-8')
当我传入一个unicode字符串(直接来自数据库)时总是对我来说,是否有办法将unicode字符串更改为其他格式以允许它再次编码为'utf-8'而无需获取错误,因为我不允许更改遗留代码段.
我先尝试解码它,但它返回此错误
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
如果我将unicode字符串保留为返回状态
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 986: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
如果我将遗留代码更改为不起作用encode('utf-8')
,但这不是一个可行的选择
编辑:
这是代码片段
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
if __name__ == "__main__":
# 1
a = u'??'
# 2
a = a.decode('utf-8')
# 3
a.encode('utf-8')
Run Code Online (Sandbox Code Playgroud)
出于某种原因,如果我跳过,#2
我没有得到上面提到的错误,我仔细检查字符串的类型,它似乎都是unicode,两个是相同的字符,但我正在处理的代码不允许我编码或解码utf-8
,而某些片段中的相同字符允许我这样做.
考虑以下情况:
在这些情况中,任何一种情况都不适合编码或解码.
归档时间: |
|
查看次数: |
881 次 |
最近记录: |