diff --git a/IPython/html/services/notebooks/filenbmanager.py b/IPython/html/services/notebooks/filenbmanager.py index 9d0a73c..346518c 100644 --- a/IPython/html/services/notebooks/filenbmanager.py +++ b/IPython/html/services/notebooks/filenbmanager.py @@ -213,7 +213,7 @@ class FileNotebookManager(NotebookManager): model['last_modified'] = last_modified model['created'] = last_modified if content is True: - with open(os_path, 'r') as f: + with io.open(os_path, 'r', encoding='utf-8') as f: try: nb = current.read(f, u'json') except Exception as e: @@ -241,7 +241,7 @@ class FileNotebookManager(NotebookManager): nb['metadata']['name'] = u'' try: self.log.debug("Autosaving notebook %s", os_path) - with open(os_path, 'w') as f: + with io.open(os_path, 'w', encoding='utf-8') as f: current.write(nb, f, u'json') except Exception as e: raise web.HTTPError(400, u'Unexpected error while autosaving notebook: %s %s' % (os_path, e)) @@ -394,7 +394,7 @@ class FileNotebookManager(NotebookManager): u'Notebook checkpoint does not exist: %s-%s' % (name, checkpoint_id) ) # ensure notebook is readable (never restore from an unreadable notebook) - with open(cp_path, 'r') as f: + with io.open(cp_path, 'r', encoding='utf-8') as f: nb = current.read(f, u'json') shutil.copy2(cp_path, nb_path) self.log.debug("copying %s -> %s", cp_path, nb_path)