【发布时间】:2020-03-08 02:44:09
【问题描述】:
我在 Jupyter 笔记本中使用西里尔符号。
在 NoteBook №1 中,我运行 NoteBook №2。
%run ./NB2.ipynb
在 NoteBook №2 中,我写了一些 txt 文件。
TestText = open('C:\\TRASH\\test_text.txt', 'w')
a = 'Иридий' #Iridium
TestText.write(a+'\n')
TestText.close()
当 NB1 启动时,我得到 UnicodeDecodeError。
...can't decode byte 0x98
那里有完整的输出:http://collabedit.com/tcev6
简而言之,Nbformat 库调用 core.reads,它依次以 win-1251 编码读取 NB2。这就是为什么第一个“И”是问题所在。
读取第二个笔记本有没有常规的选择编码的方法?
【问题讨论】:
-
笔记本总是以 UTF-8 编码保存 - 这是 IPython 中的一个错误,它试图将其读取为 cp-1251。如果您想提出问题,如果没有人先到那里,我应该可以在明天轻松解决此问题。
-
我已经打开了一个 PR 来解决这个问题:github.com/ipython/ipython/pull/10558
标签: python-3.x character-encoding jupyter-notebook