python - 处理 Python unicode 字符串中错误编码的字符

标签 python string unicode character-encoding

我正在处理由 python-lastfm 库返回的 unicode 字符串。

我假设在途中某处,库的编码错误并返回可能包含无效字符的 unicode 字符串。

例如,我在变量 a 中期望的原始字符串是“Glück”

>>> a
u'Gl\xfcck'
>>> print a
Traceback (most recent call last):
  File "", line 1, in 
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 2: ordinal not in range(128)

\xfc是转义值252,对应“ü”的latin1编码。不知何故,它以 python 无法自行处理的方式嵌入到 unicode 字符串中。

我如何将其转换回包含原始“Glück”的普通或 unicode 字符串?我尝试使用解码/编码方法,但要么得到 UnicodeEncodeError,要么得到一个包含序列\xfc 的字符串。

最佳答案

您必须使用某种编码将您的 unicode 字符串转换为标准字符串,例如utf-8:

some_unicode_string.encode('utf-8')

除此之外:这是一个骗局

BeautifulSoup findall with class attribute- unicode encode error

以及至少 10 个关于 SO 的其他相关问题。先研究。

关于python - 处理 Python unicode 字符串中错误编码的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760936/

相关文章:

xcode - 为什么我不能从 SQLite 显示 Unicode?

java - 在 Java 中将 bytes 转换为 String 时会发生什么?

python - python中如何操作C函数返回的C类型指针?

python - Python和ctype访问C全局变量结构的方法

python - 使用 Flask 导入 Bootstrap

python - 如何为所有处理程序设置相同的日志记录格式?

c++ - "printf"字符串打印乱码

c# 将多行字符串传递给函数并返回数组

java - 除了最大长度之外,java中的字符串还有什么限制?

javascript - 在javascript中,我如何获得一个指示字符一般类别的值,例如java Character.getType?