带有 unicode CODES 的文本在 Python 3.7 中无法正确显示
Text with unicode CODES not displaying correctly in Python 3.7
在花了几个小时检查与此相关的每个 Whosebug post 之后,我正在努力解决这本应该是一件非常简单的事情...
我有一个带有 unicode 代码(不是字符,代码)的文本文件,例如:
"Edward escribi\u00c3\u00b3 la biograf\u00c3\u00ada de su autor
favorito"
此字符串应显示为:
"Edward escribió la biografía de su autor favorito"
如果我像往常一样加载文件,打印加载文本时只会看到 unicode 字符串:
import io
chars = io.open(fb_json_path, encoding='utf-8').read().strip()
这将打印:"Edward escribi\u00c3\u00b3 la biograf\u00c3\u00ada de su autor favorito"。去掉encoding参数也是一样
我想我需要告诉 Python 解释字符串中的代码并将它们显示为 utf-8 字符,但我不知道该怎么做。
提前致谢!
我认为输入因编码错误而出现乱码。
C3 93
是 ó
(LATIN CAPITAL LETTER O WITH ACUTE).
的 UTF-8 编码字节
运行 在 Python 3 控制台
>>> text = "Edward escribi\u00c3\u00b3 la biograf\u00c3\u00ada de su autor favorito"
>>> text.encode('cp1252').decode('utf8')
'Edward escribió la biografía de su autor favorito'
我们可以分两步完成:
首先,我们读取带有encoding='unicode_escape'
的文件来转换所有的\uxxxx
。
然后,我们通过将其透明编码为字节对象(使用 latin-1
编解码器)将其转换为 utf-8,然后再次将其转换为文本,解码为 utf-8
with open('text.txt', encoding='unicode-escape') as f:
text = f.read()
print(text)
#Edward escribió la biografÃa de su autor favorito
# Now we convert it to utf-8
text = text.encode('latin1').decode('utf8')
print(text)
# Edward escribió la biografía de su autor favorito
在花了几个小时检查与此相关的每个 Whosebug post 之后,我正在努力解决这本应该是一件非常简单的事情...
我有一个带有 unicode 代码(不是字符,代码)的文本文件,例如:
"Edward escribi\u00c3\u00b3 la biograf\u00c3\u00ada de su autor favorito"
此字符串应显示为:
"Edward escribió la biografía de su autor favorito"
如果我像往常一样加载文件,打印加载文本时只会看到 unicode 字符串:
import io
chars = io.open(fb_json_path, encoding='utf-8').read().strip()
这将打印:"Edward escribi\u00c3\u00b3 la biograf\u00c3\u00ada de su autor favorito"。去掉encoding参数也是一样
我想我需要告诉 Python 解释字符串中的代码并将它们显示为 utf-8 字符,但我不知道该怎么做。
提前致谢!
我认为输入因编码错误而出现乱码。
C3 93
是 ó
(LATIN CAPITAL LETTER O WITH ACUTE).
运行 在 Python 3 控制台
>>> text = "Edward escribi\u00c3\u00b3 la biograf\u00c3\u00ada de su autor favorito"
>>> text.encode('cp1252').decode('utf8')
'Edward escribió la biografía de su autor favorito'
我们可以分两步完成:
首先,我们读取带有encoding='unicode_escape'
的文件来转换所有的\uxxxx
。
然后,我们通过将其透明编码为字节对象(使用 latin-1
编解码器)将其转换为 utf-8,然后再次将其转换为文本,解码为 utf-8
with open('text.txt', encoding='unicode-escape') as f:
text = f.read()
print(text)
#Edward escribió la biografÃa de su autor favorito
# Now we convert it to utf-8
text = text.encode('latin1').decode('utf8')
print(text)
# Edward escribió la biografía de su autor favorito