cou*_*lix 3 python utf-8 character-encoding
而从一个未知的/旧的/非一致Mysql数据库中获取数据,以使用Python(Django的)ORM一个Postgres UTF-8分贝我有时故障编码的数据作为结果.
目标:grégory
> a
u'gr\xe3\xa9gory'
> print a
grã©gory
Run Code Online (Sandbox Code Playgroud)
我尝试了几种解码/编码技巧但没有成功:
> print a.encode('utf-8').decode('latin1')
grã©gory
> print a.encode('utf-8').decode('latin1')
grã©gory
> print a.decode('latin-1')
UnicodeEncodeError: 'ascii' codec can't encode characters in position 2-3: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
即使有一些unicode_escape
我猜这个字符串在某个时候被错误地转换为小写,\xc3改为\xe3.当小写转换实际上是utf-8时,它假设了latin1编码.
>>> print 'gr\xc3\xa9gory'.decode('utf8')
grégory
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11230 次 |
| 最近记录: |