【问题标题】:Why is my Jupyter Notebook using ascii codec even on Python3?为什么我的 Jupyter Notebook 即使在 Python3 上也使用 ascii 编解码器?
【发布时间】:2020-01-16 15:31:34
【问题描述】:

我正在分析一个包含法语字符的数据框。

我在 jupyter notebook 中设置了一个基于 Python3 的 IPython 内核,所以默认编码应该是 utf-8。

但是,当我的 .ipynb 中出现重音字符(如 é、è...)时,我无法再保存我的笔记本,即使这些字符是在 utf-8 中处理的。 我在尝试保存时收到的错误消息是这样的:

保存文件时出现意外错误:Videos.ipynb 'ascii' codec can't encode characters in position 347-348: ordinal not in range(128)

这是一些在基本 Python3 内核中给出相同错误消息的最小代码

import pandas as pd
d = {'EN': ['Hey', 'Wassup'], 'FR': ['Hé', 'ça va']}
df = pd.DataFrame(data=d)

(实际上是一个带有“é”作为文本的简单单元格确实阻止我保存)

我见过类似的问题,但它们都是基于 Python 2.7,所以没有任何相关性。为了解决这个问题,我还尝试了几件事:

  • 包括我笔记本顶部的# coding: utf-8

  • 读取csv文件时指定utf-8编码

  • 尝试使用 latin-1 编码读取文件然后保存(仍然没有 ascii编解码器支持)

  • 还检查了我在 python3 中的默认编码,以确保

    sys.getdefaultencoding() 'utf-8'

  • 在 Notepad++ 中打开 .ipynb:编码设置为 utf-8。我可以添加重音字符并保存在那里,但随后无法再在 jupyter 中打开笔记本(我收到“未知错误”消息)。

问题来自于保存笔记本而不是读取文件,所以基本上我想切换到 utf-8 编码来保存我的 .ipynb 文件但不知道在哪里。

我怀疑问题可能来自我在 Windows10 上使用 WSL 的事实 - 不过只是直觉。

非常感谢您的帮助!

【问题讨论】:

    标签: python-3.x encoding jupyter-notebook save windows-subsystem-for-linux


    【解决方案1】:

    嗯,原来卸载然后重新安装 jupyter notebook 就可以了。不知道发生了什么,但现在已经解决了。

    【讨论】:

      猜你喜欢
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      • 2018-02-15
      • 2017-04-26
      相关资源
      最近更新 更多